PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschachtelte While-Schleifen (doppelte Einträge)


cvb
30.10.2003, 12:19:29
Hallo Forum,

ich habe in einer MySQL-Tabelle folgenden Struktur:

id author article text datum

Ich möchte jetzt in einer Übersicht von jedem Autoren jeden Artikel auflisten. D. h. der Autor soll nur einmal aufgelistet sein und dahinter seine Artikel.

Folgendes Konstrukt habe ich vermutet, geht aber nicht:

while($row = mysql_fetch_row($result))
{
echo $row[1];
$result1 = mysql_query("SELECT * FROM themes WHERE author = $row[1]");
while($row1 = mysql_fetch_row($result1))
{
echo $row1[2];
}

Problem ist, dass der Autor mehrmals aufgeführt wird. Wie kann ich das anders gestalten?

c4
30.10.2003, 14:56:51
Mach es einfach mit 2 Abfragen. Die eine ermittelt alle Autoren, die andere alle Bücher des jeweiligen Autors.$result1=mysql_query('SELECT DISTINCT author FROM tabelle;') or die(mysql_error());
while ($data1=mysql_fetch_assoc($result1)) {
echo '<br><br>'.$data1['author'].'<br><br>';
$result2=mysql_query("SELECT * FROM tabelle WHERE author='$data1['author']';") or die(mysql_error());
while ($data2=mysql_fetch_assoc($result2)) {
echo "$data2['datum'] - $data2['article'] - $data2['text']<br>n";
}
}



Edit: Ups, wie ich sehe entspricht das ja fast Deiner Variante (hatte ich mir nicht angeschaut).

cvb
02.11.2003, 21:29:17
...aber es hat gewirkt. Das ist genau das, was ich brauchte!

Danke!