Gruppierte Ausgabe einer MySQL-Abfrage

Wanna

Mitglied
Hallo.

Ich habe ein kleines Problem mit einer Mysql Abfrage. Mir fehlt mehr oder weniger der Ansatz ;)

Ich möchte auf unserer Schulhomepage, eine Liste mit Lehrersprüchen veröffentlichen. Dazu habe ich eine Mysql Tabelle:
Code:
id    => id
spruch_id    => spruchid
sprecher    => name der person die den satz gesagt hat
text   => aussage der Person

das ganze soll im endeffekt so aussehen
http://www.osd-clan.de/schulhp/index.php?section=lehrersprueche

hier hab ich das ganze mit html mal nachgebaut ;)

was mir wichtig ist, ist dass nach jedem spruch die schwarze linie kommt (spacer.gif). nach jeder aussage die gestrichelte (line.gif). das mit der gestrichelten würde ich ja noch schaffen, dass diese nach jedem abgefragten datensatz kommt. aber per php definieren, wann er die schwarze linie einsetzen soll, da bin ich überfragt. desshalb möchte ich von euch wissen, ob das überhaupt geht und wenn ja, wie?

vielen dank
 
Probier mal Folgendes:
PHP:
$query = '
	SELECT
	        `spruch_id`,
	        `sprecher`,
	        `text`
	  FROM
	        `Tabelle`
	  ORDER BY
	        `spruch_id` DESC
	';
$result = mysql_query($query);
$tmp = null;
while( $row = mysql_fetch_assoc($result) ) {
	if( $tmp != $row['spruch_id'] ) {
		if( !is_null($tmp) ) {
			echo '</dl>';
		}
		echo '<dl>';
		$tmp = $row['spruch_id'];
	}
	echo '<dt>'.$row['sprecher'].'</dt><dd>'.$row['text'].'</dd>';
}
if( !is_null($tmp) ) {
	echo '</dl>';
}
Eine Definitionsliste ist zwar semantisch nicht das Optimum, doch für diesen Zweck dürfte es reichen. Formatieren kannst du das Ganze dann mit CSS.
 
Zurück