MySQL-Statement WHERE ... GROUP BY

Hallo.

Ich hab mal wieder ein Problem mit einem MySQL-Statement.
Ich möchte aus einer Tabelle eine Statistik erzeugen.

Meine Datenbank hat eine Tabelle mit folgenden Spalten:

  • id
  • date
  • who
  • where
  • chuck_up
  • go_out

Jetzt würde ich gerne über ein SQL-Statement dies zusammenfassen und zwar ein Group By nach der Spalte who…
Weiters soll eine Summe von chuck_up und go_out gebildet werden.

ich habs so probiert:

SELECT id, who, sum(chuck\_up), where, sum(go\_out) FROM $db\_table WHERE who='$wer' GROUP BY who

Jedoch kommt folgende Fehlermeldung…

Warning: mysql\_fetch\_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\kotz\show-kotzerstat.php on line 75

Wo liegt hier der Fehler??

Gruss,
Sebastian

Hallo

zeig mal den php teil,
der fehler liegt im php und nicht im sql bereich.

Gruß
Phillip

Hallo.

Ich hab mal wieder ein Problem mit einem MySQL-Statement.
Ich möchte aus einer Tabelle eine Statistik erzeugen.

ich habs so probiert:

SELECT id, who, sum(chuck_up), where, sum(go_out) FROM
$db_table WHERE who=’$wer’ GROUP BY who

Jedoch kommt folgende Fehlermeldung…

Warning: mysql_fetch_object(): supplied argument
is not a valid MySQL result resource in
C:\xampp\htdocs\kotz\show-kotzerstat.php on line
75

wenn du sichergestellt hast, dass du mysql_fetch_object korrekt eingebunden hast:
http://php.net/mysql_error direkt nach dem select.

Hallo Phillip.

hier der php teil…

$abfrage = "SELECT id, who, sum(chuck\_up), where, sum(go\_out) FROM $db\_table WHERE who='$wer' GROUP BY who";
 $ergebnis = mysql\_query($abfrage);
 while($row = mysql\_fetch\_object($ergebnis))
 {
 $id = $row-\>id;
 $who = $row-\>who;
 $chuck\_up = $row-\>chuck\_up;
 $where = $row-\>where;
 $go\_out = $row-\>go\_out;
 }

Gruss,
Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sebastian,

Hallo

zeig mal den php teil,
der fehler liegt im php und nicht im sql bereich.

Einspruch :wink:

Antworte trotzdem mal hier unten, weil…

$abfrage = „SELECT id, who, sum(chuck_up), where, sum(go_out)
FROM $db_table WHERE who=’$wer’ GROUP BY who“;
$ergebnis = mysql_query($abfrage);

wenn du hier ein if(!$ergebnis) die(mysql_error()); hinschreibst, bekommst du auch die „richtige“ Fehlermeldung von mySQL zu Gesicht, und nicht nur so einen nitssagenden Kram.

Noch mal zu deinem SQL: ALLE Spalten, welche nicht in Funktionen stehen, müssen im Group by stehen.
Wenn du also für alle who die 2 Summen haben willst und der Rest egal ist, dann schreibe auch nur SELECT who, sum(chuck_up), sum(go_out) FROM …

Da du aber who im WHERE vorgibst, ist es nicht sonderlich sinnvoll, danach zu gruppieren, wenn der Rest keine Rolle spielt, da würde es dann auch ein SELECT sum(chuck_up), sum(who) FROM … WHERE tun.

Schreibe ggfs. noch einmal, was du erwartest, vor allem, was du in den anderen Spalten erwartest im Ergebnis. Wenn id eine eindeutige ID ist und du mehrere Datensätze zu einem zusammenfasst, was soll dann in der id stehen ?

Alexander

Sorry, Tippfehler,

Da du aber who im WHERE vorgibst, ist es nicht sonderlich
sinnvoll, danach zu gruppieren, wenn der Rest keine Rolle
spielt, da würde es dann auch ein SELECT sum(chuck_up),
sum(who) FROM … WHERE tun.

sollte SELECT sum(chuck_up), sum(go_out) FROM … WHERE who=’$who’ werden.

Alexander

sollte SELECT sum(chuck_up), sum(go_out) FROM … WHERE
who=’$who’ werden.

stimmt, das group by benötige ich nicht…voll der denkfehler!!
dieses sql-statement bringt mein ergebnis.

Gruss,
Sebastian