Wert aus jeder Zeile zusammenzählen

Wert aus jeder Zeile zusammenzählen

am 04.03.2006 17:28:07 von Stephan Roos

Hallo NG

ich habe folgenden DB aufbau (txt DB keine MySQL) ;-)

blabla|125
blabu|14
huha|239

wie kann ich nun aus jeder zeile die zahl zusammenzählen lassen?

$array = file("$datenbank");

foreach($array as $wert){
$temp = explode('|',$wert);
$gesamt = "$temp[1]";
}
echo "$gesamt";

jedoch wenn ich nun $gesammt aufrufe zeit es mit nur die Zahl des Letzten DB
eintrages an. also 239

danke für eure hilfe

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 17:50:15 von Felix Holdener

"Stephan Roos" schrieb:

>Hallo NG
>
>ich habe folgenden DB aufbau (txt DB keine MySQL) ;-)
>
>blabla|125
>blabu|14
>huha|239
>
>wie kann ich nun aus jeder zeile die zahl zusammenzählen lassen?
>
>$array = file("$datenbank");
>
>foreach($array as $wert){
> $temp = explode('|',$wert);
> $gesamt = "$temp[1]";
>}
>echo "$gesamt";
>
>jedoch wenn ich nun $gesammt aufrufe zeit es mit nur die Zahl des Letzten DB
>eintrages an. also 239

Wo in deinem Skript wird denn überhaupt etwas zusammengezählt?

Felix

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 18:07:54 von Stephan Roos

eben noch nirgens, das will ich ja erreichen, dass alle zahlen addiert
werden.

gruss Stephan


"Felix Holdener" schrieb im Newsbeitrag
news:97hj02tg3pls64vhdapspk1mp4e2hnddkv@4ax.com...
> "Stephan Roos" schrieb:
>
>>Hallo NG
>>
>>ich habe folgenden DB aufbau (txt DB keine MySQL) ;-)
>>
>>blabla|125
>>blabu|14
>>huha|239
>>
>>wie kann ich nun aus jeder zeile die zahl zusammenzählen lassen?
>>
>>$array = file("$datenbank");
>>
>>foreach($array as $wert){
>> $temp = explode('|',$wert);
>> $gesamt = "$temp[1]";
>>}
>>echo "$gesamt";
>>
>>jedoch wenn ich nun $gesammt aufrufe zeit es mit nur die Zahl des Letzten
>>DB
>>eintrages an. also 239
>
> Wo in deinem Skript wird denn überhaupt etwas zusammengezählt?
>
> Felix

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 18:10:25 von Stephan Roos

habe die lösung soeben bekommen

$gesamt += "$temp[1]";

mfg

Stephan

"Stephan Roos" schrieb im Newsbeitrag
news:4409c03c$1_2@news.tiscalinet.ch...
> Hallo NG
>
> ich habe folgenden DB aufbau (txt DB keine MySQL) ;-)
>
> blabla|125
> blabu|14
> huha|239
>
> wie kann ich nun aus jeder zeile die zahl zusammenzählen lassen?
>
> $array = file("$datenbank");
>
> foreach($array as $wert){
> $temp = explode('|',$wert);
> $gesamt = "$temp[1]";
> }
> echo "$gesamt";
>
> jedoch wenn ich nun $gesammt aufrufe zeit es mit nur die Zahl des Letzten
> DB eintrages an. also 239
>
> danke für eure hilfe
>
>

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 18:11:00 von Niels Braczek

Stephan Roos schrieb:

> $array = file("$datenbank");
^ ^
Was sollen diese Stringbegrenzer?

> foreach($array as $wert){
> $temp = explode('|',$wert);
> $gesamt = "$temp[1]";
> }
> echo "$gesamt";
>
> jedoch wenn ich nun $gesammt aufrufe zeit es mit nur die Zahl des Letzten DB
> eintrages an. also 239

Wenn du $gesammt aufrufst, solltest du eine Notice bekommen ;-)

$file = file($datenbank);

$sum = 0;
foreach ($file as $line) {
$temp = explode('|', $line);
$sum+= $temp[1];
}
echo $sum;

Du solltest dich noch mal mit den Kapiteln Strings und Variablen des
Manuals befassen. Außerdem mit den Operatoren.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 18:19:36 von Niels Braczek

Stephan Roos schrieb:

> habe die lösung soeben bekommen
>
> $gesamt += "$temp[1]";
^ ^
Diese Anführungszeichen haben da immer noch nichts zu suchen.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 19:25:13 von Stephan Roos

hallo

hab gerade deinen Komentar gelesen,

das aufzählen hatt prima funktioniert, und nun bekomme ich wirklich eine
Notice. warum?

Stephan



"Stephan Roos" schrieb im Newsbeitrag
news:4409c03c$1_2@news.tiscalinet.ch...
> Hallo NG
>
> ich habe folgenden DB aufbau (txt DB keine MySQL) ;-)
>
> blabla|125
> blabu|14
> huha|239
>
> wie kann ich nun aus jeder zeile die zahl zusammenzählen lassen?
>
> $array = file("$datenbank");
>
> foreach($array as $wert){
> $temp = explode('|',$wert);
> $gesamt = "$temp[1]";
> }
> echo "$gesamt";
>
> jedoch wenn ich nun $gesammt aufrufe zeit es mit nur die Zahl des Letzten
> DB eintrages an. also 239
>
> danke für eure hilfe
>
>

Re: Wert aus jeder Zeile zusammenzählen

am 04.03.2006 20:34:05 von Matthias Esken

On Sat, 4 Mar 2006 19:25:13 +0100, Stephan Roos wrote:

> das aufzählen hatt prima funktioniert, und nun bekomme ich wirklich eine
> Notice. warum?

"Aufzählen"? "Addieren" meinst du, oder? Einigermaßen korrekte Begriffe
helfen ungemein wenn es um technische Sachverhalte geht.

Die Antwort auf deine Frage ist jetzt relativ simpel. Du verwendest ein
Konstrukt der Art
$summe += $wert;
oder in lang
$summe = $summe + $wert;

Was passiert dort? Zu dem Wert, der in $summe steht wird der Wert aus $wert
addiert. Wenn das Programm bei seinem Durchlauf jetzt zum ersten Mal auf
diese Stelle trifft, dann hast du es vor ein Problem gestellt. Es soll zu
dem Wert in $summe etwas addieren. $summe gibt es aber noch gar nicht.
Folglich geht PHP her, überlegt einen Moment und belegt $summe dann von
selber mit dem Wert 0 und teilt dir das mit einer Notice mit. Bei den
nächsten Durchläufen passt dann alles, da $summe ja im ersten
Schleifendurchlauf definiert wurde.

Wie bekommst du das jetzt weg? Du musst PHP nur einmal sagen, wie denn der
Startwert für $summe sein soll. Also setzt du vor die Schleife ein
$summe = 0;
und alles ist in Ordnung.


Deine Zitierweise ist übrigens hier recht ungewöhnlich und unpraktisch.
Lies mal in der FAQ folgenden Beitrag:

1.15. Was ist TOFU? Wieso finden die Anderen meine Artikel schwer zu lesen?
http://www.php-faq.de/q/q-newsgroup-tofu.html


Gruß,
Matthias

Re: Wert aus jeder Zeile zusammenzählen

am 05.03.2006 00:18:39 von Hartmut Holzgraefe

Stephan Roos wrote:
> das aufzählen hatt prima funktioniert, und nun bekomme ich wirklich e=
ine
> Notice. warum?

Mangels Kristallkugel ist das recht schwer zu beantworten ...

für solche Fragen ist zumindest der Text der Warnung durchaus hilfreich=
,
und auch der Code um die in der Meldung angegebene Zeilennummer herum
kann nicht schaden ...


--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

http://www.mysql.com/support/