Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » [MySQL] Zeilen in Gruppen mit Kategorie ausgeben Antworten
[MySQL] Zeilen in Gruppen mit Kategorie ausgeben

zeTo
Quasselstrippe


Beiträge: 241


huhu

ich habe auch mal wieder ein problem. ich habe in mysql folgende tabelle
1: 
2: 
3: 
4: 
5: 
6:
name	stage
name1	2
name2	1
name3	1
name4	2
name5	3


jetzt soll die ausgabe so sein

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
 stage: 1
  - name2
  - name3
 stage 2
  - name1
  - name4
 stage 3
  - name5


also immer die stage als überschrift und dann alle, die diese stage haben.
das ginge ja mit zwei selects, allerdings habe ich das gefühl, dass man das auch mit group by machen könnte. habe auch danach bei google gesucht, allerdings wird da immer nur erklärt, wie man dann zählen kann, wie viele in der jeweiligen kategorie sind.
im moment habe ich es so:

1:
SELECT * FROM names GROUP BY stage

wenn ich jetzt alles in einer "normalen" schleife ausgebe, wird aber immer nur die stage und dann jeweils nur ein wert ausgeben.
wie kann ich das anders machen?
schon mal vielen dank


Diese Nachricht wurde geändert von: zeTo
  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Guck dir mal left und right join an. Allerdigns müsstest du da im Grunde noch ein extra Tabelle für die Stages machen.

Bei deiner Schleifenvariante musst du halt überprüfen ob das jeweilige Element, dass du gerade anzeigen willst, das erste einer neuen Stage ist, wenn ja, dann musst du halt gerade vorher ne Überschrift ausgeben. Ist vermutlich die einfachere Variante.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

zeTo
Quasselstrippe


Beiträge: 241


jupp, join wäre natürlich eine Möglichkeit, allerdings sind es im Grunde nur vier stages, so dass es sich nicht wirklich lohnen würde.
Die Variante mit den Schleifen und dann Überprüfen werde ich dann wohl letztlich benutzen...
Ich war mir nur sicher, dass ich das mit dem "group by" mal irgendwo sehr einfach gesehen habe...

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Mit Sicherheit nicht. GROUP BY erstellt Zusammenfassungen von Daten - du willst aber alle. Von daher wäre es nicht logisch. Mit einem JOIN wäre es wohl auch nicht getan, da du wohl nur ein Tabelle hast. Die Ausgabe ist Sache von PHP.

1) Abfragen der Daten sortiert nach stage und name
2a) beim direkten Ausgeben letzten stage merken und bei Änderung Stage-Überschrift ausgeben.
2b) ein verschachteltes Array aufbauen nach den Schema $data[$row['stage']][] = $row



---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben