Kleines Rechenproblem

Tageslicht

Mitglied
Hallo zusammen ,

ich habe mal ein kleines Problem ( seh vielleicht den Wald vor lauter Bäumen nicht )

also ich habe folgendes :

Code:
Nickname | x | y | Typ A | Typ B | Typ C
lila           | 7 | 14 | 100 | 25  | 30 
lila           | 7 | 14 | 0    | 50   | 10

so ich möchte nun alle Zahlen ( Typ A , Typ B , Typ C ) komplett zusammen zählen , wäre in diesen Fall 215.

so frage ich es im moment ab :

PHP:
$Test_1 = "SELECT * FROM Zahlen 
WHERE Nickname = 'lila' 
AND x = '7' AND y = '14'"; 
$Test_2 = mysql_query($Test_1);
while($Test_3 = mysql_fetch_assoc($Test_2)) 
{
$Typ_A = $Test_3['Typ_A'];
$Typ_B = $Test_3['Typ_B'];
$Typ_C = $Test_3['Typ_C'];
$Gesamt = $Typ_A + $Typ_B+$Typ_C;
echo $Gesamt;
}

als Ausgabe bekomm ich im moment :

15560 statt 215


was muss ich anders machen ?


Mfg
 
Kommen denn die richtigen Werte raus, wenn du dir

PHP:
echo $Test_3['Typ_A']. "\n";
echo $Test_3['Typ_B']. "\n";
echo $Test_3['Typ_C']. "\n";


ausgeben lässt?
 
hey...

also ich hab nich so den ganz grossen plan von php...

aber was mir auffällt, oder was ich nich versteh schreib ich ma hier, vlt bringt dich das weiter...

1. kenn ich mysql_fetch_assoc nich, aber geh davon aus, das du dir jeden datensatz aus der anwort holst und anschliessend die ergebnisse zusammenrechnen willst....
aber wenn jeder datensatz einzeln geholt wird müsste doch zumindest in der letzten zeile sowas wie
PHP:
$Gesamt = $Gesamt + $Typ_A + $Typ_B+$Typ_C;
stehen, damit der gesamtwert des datensatz zuvor nich verloren geht.

2. normalerweise würde ich es so machen:
PHP:
    $query = "SELECT * FROM Zahlen 
                        WHERE Nickname = 'lila' 
                        AND x = '7' AND y = '14'"; 

    $result = mysql_query($query);
    $Gesamt = 0;
    for($i=mysql_num_rows($result);$i>0;$i--){
        
      $Typ_A = $Test_3['Typ_A'];
      $Typ_B = $Test_3['Typ_B'];
      $Typ_C = $Test_3['Typ_C'];
      $Gesamt = $Gesamt  + $Typ_A + $Typ_B+$Typ_C;
    }
echo $Gesamt;

hab es aber nich getestet...
 
weiss jetzt auch warum 15560 raus kommt...lol
kannst deine Funktion so nehmen:
PHP:
$Test_1 = "SELECT * FROM Zahlen 
WHERE Nickname = 'lila' 
AND x = '7' AND y = '14'"; 
$Test_2 = mysql_query($Test_1);
while($Test_3 = mysql_fetch_assoc($Test_2)) 
{
$Typ_A = $Test_3['Typ_A'];
$Typ_B = $Test_3['Typ_B'];
$Typ_C = $Test_3['Typ_C'];
$Gesamt = $Gesamt + $Typ_A + $Typ_B+$Typ_C;
}
echo $Gesamt;
denn sonst wird beim ersten Durchlauf folgendes gerechnet:
100 + 25 +30 = 155
beim zweiten mal dann:
0 + 50 + 10 = 60
und weil du keine anderen Zeichen dazwischen ausgibst macht schreibst du die Ergebnisse hintereinander wech:
15560

also einfach wie oben angegeben ändern...
 
Zurück