Inhalte gruppiert ausgeben?!

unrealzero_php

Erfahrenes Mitglied
Hallo zusammen

möchte gerne die Resultate aus einer SQL-Tabelle gruppiert ausgeben. Habe folgende Tabelle:

id | inhalt | gruppe
1 | test1 | gruppe1
2 | test2 | gruppe1
3 | test3 | gruppe1
4 | test4 | gruppe2
5 | test5 | gruppe2
6 | test6 | gruppe3
7 | test7 | gruppe1

nun möchte ich die Resultate gruppiert ausgeben, so dass ich als Überschrift die Gruppe habe und anschliessend alle Inhalt dieser Gruppe aufgelistet.

gruppe1
test1
test2
test3
test7

gruppe2
test4
test5

gruppe3
test6

Was für eine Abfrage muss ich ausführen?!

Hab schon diverses ausprobiert, aber komm nicht weiter.

SELECT inhalt,gruppe FROM tbl_test GROUP BY gruppe
 
Die Darstellung lässt sich auf zwei Arten realisieren.
Variante 1:
1. Hole Dir zunächst die Gruppen:
Code:
SELECT DISTINCT gruppe FROM Tabelle ORDER BY gruppe
2. Durchlaufe die Gruppen in einer Schleife und mache für jede Gruppe eine Abfrage:
Code:
SELECT id, inhalt FROM Tabelle WHERE gruppe LIKE 'Platzhalter für die Gruppe in diesem Schleifendurchlauf'
Diese Variante ist die langsamste.

Variante 2:
Code:
SELECT id,inhalt,gruppe FROM Tabelle ORDER BY gruppe, inhalt
Der PHP-Code zum auslesen und ausgeben des Ergebnis:
PHP:
$group='';
while($row=mysql_fetch_assoc($result)) {
    if ($group!=$row['gruppe']) {
        echo '<b>'.$row['gruppe'].'</b><br>';
        $group=$row['gruppe'];
    }
    echo $row['inhalt'].'<br>';
}

Gruß hpvw
 
hpvw hat gesagt.:
Variante 2:
Code:
SELECT id,inhalt,gruppe FROM Tabelle ORDER BY gruppe, inhalt
Der PHP-Code zum auslesen und ausgeben des Ergebnis:
PHP:
$group='';
while($row=mysql_fetch_assoc($result)) {
if ($group!=$row['gruppe']) {
echo '<b>'.$row['gruppe'].'</b><br>';
$group=$row['gruppe'];
}
echo $row['inhalt'].'<br>';
}

Gruß hpvw

Herzlichen Dank. Die zweite Variante ist genau dass, wonach ich gesucht habe. Da die Gruppen nicht festgelegt sind.
 
Zurück