$sql="SELECT aaa, bbb FROM ... ";
$res = mysql_query($sql);
Woher willst Du wissen, daß mysql_query() funktioniert hat, wenn Du nicht prüfst, ob ein Fehler vorliegt oder nicht?
if (! $res=mysql_query($sql))
die(htmlentities($sql.": ".mysql_error()));
while ($row = mysql_fetch_array($res))
//reset($row);
while ($row = mysql_fetch_array($res))
Das zweite WHILE liefert kein Ergebnis.
Warum?
Überlege mal: Warum landet Dein erstes while..mysql_fetch_array() nicht in einer Endlosschleife? Genau, weil die Funktion am Ende des Ergebnisses einen "Fehler" zurückgibt. Und was passiert dementsprechend bei Deiner zweiten Schleife, solange der Zeiger im Ergebnis immer noch am Ende steht? Richtig, mysql_fetch_..() liefert einen Fehler, die Schleife wird gar nicht erst angesteuert. Du brauchst also eine Funktion zum Zurückspulen, so wie Du es wohl schon reset() versucht hast. reset() ist allerdings eine Funktion für Felder, nicht für MySQL.
Im MySQL-Kapitel der PHP-Anleitung gibt es zwar kein explizites "mysql_reset()", aber eine Funktion, die besagten Ergebniszeiger ("internal result pointer") auf eine beliebige Position setzen kann. Schau mal rein.
Gruß,
soenk.e