mysql - while auflistung
Honda
- php
Hallo,
ich habe in einer Datenbank eine Reihe von Werten denen allen jeweils eine Kategorie zugeordnet ist.
Also z.B.
Alfred, Kat1
Christian, Kat3
Elke, Kat4
Anton, Kat3
Karl, Kat8
usw.
ich lese die Daten aus und gebe diese mittels
"while($db = mysql_fetch_object($daten)){...."
aus.
Da ich die Daten jedoch Kategorieweise sortieren möchte, will ich nicht in jedem Kategorieabschnutt die while-Schleife neu durchlaufen lassen, sondern pro Abschnitt jeweils nur die Datensätze die der Kat2 zugeordnet sind, danach der Kat3 usw.
Hat jemand eine Idee wie ich das mit nur einer DB-Abfrage machen kann, ohne dass ich die while-schleife jedesmal voll durchlaufen lassen muss?
Danke & Grüsse,
Honda
Hallo
ich habe in einer Datenbank eine Reihe von Werten denen allen jeweils eine Kategorie zugeordnet ist.
Also z.B.
Alfred, Kat1
Christian, Kat3
Elke, Kat4
Anton, Kat3
Karl, Kat8
usw.
Da ich die Daten jedoch Kategorieweise sortieren möchte,
verwendest Du
ORDER BY -- sortiere
kategorie, -- zuerst nach Kategorie
name -- innerhalb der Kategorien nach dem Namen
Wo ist das Problem? Und was hat PHP damit zu tun?
Freundliche Grüße
Vinzenz
Hallo,
Wo ist das Problem? Und was hat PHP damit zu tun?
ja, das ist mir schon klar.
ich möchte jedoch in unterschiedlichen Tabellen die einzelnen Kategorien darstellen. Derzeit gebe ich mittels "while" in jeder Tabelle die Datensätze aus (if $kat==1), (if $kat=2) etc.
D.h. ich muss bei 6 Kategorien 6 mal mit der while-schleife operieren, was sicher optimiert werden könnte, oder?
Gruß,
Honda
Hi,
ich möchte jedoch in unterschiedlichen Tabellen die einzelnen Kategorien darstellen. Derzeit gebe ich mittels "while" in jeder Tabelle die Datensätze aus (if $kat==1), (if $kat=2) etc.
D.h. ich muss bei 6 Kategorien 6 mal mit der while-schleife operieren, was sicher optimiert werden könnte, oder?
Natuerlich - wenn du dich informierst, was man unter einem Gruppenwechsel versteht, und wie man ihn umsetzt.
MfG ChrisB
echo $begrüßung;
ich möchte jedoch in unterschiedlichen Tabellen die einzelnen Kategorien darstellen. Derzeit gebe ich mittels "while" in jeder Tabelle die Datensätze aus (if $kat==1), (if $kat=2) etc.
Gib dazu mal ein konkretes Beispiel wie die Tabellen aussehen, die dir die Information liefern. Oder hast du das bereits soweit, dass die Ergebnismenge aus Person und Kategoriename besteht und außerdem in erster Linie nach dem Kategorienamen sortiert ist?
D.h. ich muss bei 6 Kategorien 6 mal mit der while-schleife operieren, was sicher optimiert werden könnte, oder?
Wenn der Kategoriename in der Ergebnismenge steht, dann lautet das Stichwort, wie schon erwähnt, Gruppenwechsel. Zuerst merkst du dir in einer Hilfsvariable nichts, z.B. einen Leerstring. Bei jedem Durchlauf vergleichst du die Hilfsvariable mit dem ausgelesenen Kategorienamen und reagierst bei Ungleichheit mit dem Schreiben einer Überschrift oder was immer du willst. Dann geht die Schleife weiter mit dem Ausgeben der Person. Anschließend schreibst du den eben ausgelesenen Kategorienamen in die Hilfsvariable, und weiter geht es mit dem nächsten Durchlauf.
echo "$verabschiedung $name";