MySQL Datensätze addieren und ausgeben!

stit

Grünschnabel
Hallo,

benötige wiedermal Hilfe.
Ich möchte aus einer MySQL Datenbank die Summen ausgeben lassen.

Habe eine ewige Statistik erstellt für unseren Eishockeyverein und da wird jedes Jahr eine Saison eingefügt
mit Werten wie geschossene Tore, Spiele, Siege, Niederlagen,.....usw.
Habe das Ganze mit einer Schleife versehen sodass es mir das alles schön untereinander anzeigt.

Allerdings stehe ich jetzt vor dem Problem, dass ich gerne unter den oben angegeben Daten die jeweilige Summe
aus Spiele, Siege, Niederlagen, Tore,... bilden möchte.
Habe mich zwar schon schlau gemacht und einen Befehl gefunden mit Select und SUM, jedoch habe ich keine Chance das irgendwie zum Laufen zu bekommen.

Habe schon unzählige Varianten versucht, derzeit mit....

PHP:
<?php
$result_gfg = mysql_query("SELECT sum(Goals-For) as gesamt_tore FROM tbl_stats_team");
while($row = mysql_fetch_array($result_gfg))
{
echo $gesamt_tore;
}
?>

Bekomme aber immer wieder folgende Fehlermeldung:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in E:\xampp\htdocs\sillianbulls\statistik_ewig_team.php on line 236

Line 236 betrifft die zweite Zeile meines angegeben Codes!

Bitte um Hilfe ;-)
 
Hallo,
rein Theorethisch sollte das Ergebniss folgendermaßen auf zurufen sein:
PHP:
echo $row['gesamt_tore'];
Allerdings würde ich dir empfehlen das anders zu machen, da du ja nur die gesammte Anzahl haben willst kannst du das ganz ohne die schleife machen,
PHP:
 <?php
$result_gfg = mysql_query("SELECT sum(Goals-For) as gesamt_tore FROM tbl_stats_team");
$result = mysql_fetch_object($result_gfg);
echo $result->$gesamt_tore;
?>
Mit freundlichen Grüßen
Leon Bergmann
 
Zuletzt bearbeitet:
Das Problem ist nicht der Zugriff auf das Ergebnis, sondern das sein SQL einen Fehler enthält, und deswegen ein Result von FALSE (boolean) zurück kommt. Sehr wahrscheinlich ist der Grund "sum(Goals-For)" oder der Name der Tabelle (eher unwahrscheinlich).

Natürlich könnte man den Code folgendermaßen umbauen:

PHP:
$result_gfg = mysql_query("SELECT sum(Goals-For) as gesamt_tore FROM tbl_stats_team") or die(mysql_error());

und würde dann sehr schön den Fehler sehen. Aber man kann es auch auf die analytische Art und Weise angehen und erstmal kontrollieren, ob die Namen der Tabellen-Spalten alle korrekt sind.

Eine alternative Code-Schreibweise ändert am Fehler nichts.
 
Habe schon nachgesehen ob ich was falsch geschrieben habe.
Entweder hab ich heut Tomaten auf den Augen oder ich weiß auch nicht ;-)

@saftmeister:
Deine Variante hatte ich auch schon durchprobiert, selber Fehler!
 
Ok, also dein Problem ist, das die Spalte 'Goals-For' einen Namen darstellt, der auch als arithmetische Operation angesehen werden könnte, nämlich die Spalte "Goals" minus Spalte "For". Beide Spalten gibt es aber nicht, daher meckert MySQL hier auch richtigerweise rum.

Da die Spalten aber nunmal heißen, wie sie heißen, solltest du die Spaltennamen escapen (maskieren), so das MySQL es nicht als arithmetische Operation ansieht sondern als Spaltennamen. Ändere dein SQL entsprechend ab:

PHP:
$result_gfg = mysql_query("SELECT sum(`Goals-For`) as gesamt_tore FROM tbl_stats_team")

Es handelt sich bei der Änderung um die sog. Back-Ticks, die auf der Tastatur links neben der Backspace-Taste zu finden sind. Drücke die Shift-Taste und auf das Hoch-Komma, welches von Links oben nach rechts unten zeigt.
 
Nein, funkt leider immer noch nicht, habs jetzt allerdings mit meinem ursprünglichen Code versucht, also.....

PHP:
$result_gfg = mysql_query("SELECT sum(`Goals-For`) as gesamt_tore FROM tbl_stats_team");
while($row = mysql_fetch_array($result_gfg))
{
echo $gesamt_tore;
}

Interessanterweise erscheint jetzt allerdings ein anderer Fehlercode, nämlich
Notice: Undefined variable: gesamt_tore in E:\xampp\htdocs\sillianbulls\statistik_ewig_team.php on line 238

Wenn ich testhalber `Goals-For`gegen Niederlagen tausche kommt derselbe Fehler, obwohl die Rechnung ja die gleiche ist oder?
 
Zurück