Andreas Korthaus: Aus Mysql Query SUM() über Variable in PHP ausgebe`n?

Beitrag lesen

Hallo!

habe folgenden query:

SELECT wer,wann,wofuer,sum(wieviel) AS summe FROM eigenleistungen GROUP BY wer

So eine Query macht normalerweise wenig Sinn (mit "*" noch weniger!), und nach SQL-Standard ist es AFAIK auch gar nicht erlaubt.

http://aktuell.de.selfhtml.org/tippstricks/datenbanken/having/index.htm

$var[wer], $var[wann] etc.ist ja kein problem

doch, siehe: http://de3.php.net/manual/de/language.types.array.php#language.types.array.donts

  • aber wenn ich versuchce $var[summe] zu nehmen klappt das nicht - warum nicht?
    Er gibt alle Werte korrekt aus ausser summe: hier noch mal der komplette sourcecode:

$query="SELECT *,sum(wieviel) AS summe FROM " . $suffix . $modul1 . $order . " GROUP BY wer";

Aber Du hast schon eine Spalte "wieviel", ja? Jedenfalls "SELECT *,sum(wieviel)...", abgesehen davon dass man "*" nicht produktiv einsetzen sollte, und dass man keine Spalten auswählen darf die nicht entweder aggregiert werden oder im GROUP BY stehen, "*" und eine aggregierte Spalte zu kombinieren ist sicher nicht richtig.

$result = mysql_query ($query)
             or die ("Query failed");

MySQL scheint unglaublich/erschreckend Fehlerresistent zu sein...

while($line = mysql_fetch_array($result))
{
print "<tr>
<td>$line[id]</td>
<td>$line[wer]</td>
<td>$line[wieviel]</td>
<td>$line[wofuer]</td>
<td>$line[wann]</td>

Bedenke auch hier das was wie oben verlinkt um Manual zu $foo[bar] steht.

}
<td colspan='4'>$line[summe]</td>";

mysql_close($link);

Du willst mit einer Abfrage "wieviel" und "sum(wieviel)" ausgeben - wie soll das denn gehen? Dass kann nur sinnvolle Werte ergeben, wenn es immer nur eine Zeile pro "wer" gibt. Und dann brauchst Du wieder keine Gruppierungen.
Wenn Du erst die Tabelle "normal" abfragen willst, mit allen Zeilen... und am Ende die Summe drunterschreiben willst, mache 2 Abfragen.

Grüße
Andreas

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/