Gruppieren und Summieren von Daten aus MySQLArrays

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

vermutlich habe ich zu lange auf den Code geschaut, zumindest sehe ich das Problem vor lauter Feldern nicht mehr:
Ich habe in einer Datenbank mehrere Essenbestellungen.
Pro Tag wird hinterlegt, was für ein Essen bestellt wird (Früchstück, Mittag,...), wieviele davon und von welcher Einrichtung.
Der Aufbau der Tabelle ist demnach:
tageID,fruehstuecksanzahl,mittag1_anzahl,mittag2_anzahl,abendbrot_anzahl,einrichtugID

Ich frage nun die Tabelle ab und bekomme -gefiltert nach Monat und Jahr- alle Bestellungen zurück
PHP:
$stmt="SELECT
  tage.tag,
  bestellung.fruehstuecksanzahl,
  bestellung.mittag1_anzahl+bestellung.mittag2_anzahl,
  bestellung.abendbrot_anzahl,
  bestellung.einrichtungen_id
  FROM
  bestellung
  left outer join tage on
  (tage.id=bestellung.tage_id)
  WHERE
 tage.jahr=$jahr
 and
 tage.monat=$monat
ORDER BY tage.tag ASC; 
";
Ich hätte nun als Endergebnis gerne eine Summe der einzelnen Essen, gruppiert nach Einrichtungen, also:
Einrichtung 1: Frühstück 15, Mittag: 25, Abend: 15
Einrichtung 2: Frühstück 17, Mittag: 22, Abend: 13
...
Ich bekomme es momentan nicht hin, das Result-Array wunschgemäß zu bearbeiten.
 
Mööööp. Niemalsnie Werte direkt in das SQL einbinden. Das ist eine Sicherheitslücke.
Arbeite besser mit Prepared Statements.

Zu deiner Frage.
Ein GROUP BY und COUNT() ist alles was du brauchst. Dazu gibt es sicher 1000 Anleitungen.
 
Danke, Group by und sum() als Kombination waren was mir fehlte.
Das Statement ist eigentlich prepared, ich wollte es zur Veranschaulichung hier nur kurz schreiben. Eigentlich hat es auch noch mehrere joins...
Trotzdem danke für den Hinweis.
 

Neue Beiträge

Zurück