Monika S.: zweimal Daten aus der DB holen

Liebes Forum,

ich habe folgendes Problem:

<?
$sql="SELECT aaa, bbb FROM ... ";
$res = mysql_query($sql);
if(mysql_num_rows($res)>0)
 {
 while ($row = mysql_fetch_array($res))
  {
  echo "<p>".$row['aaa']."</p>\n";
  }
 }
else
 {
 echo "ERROR";
 }

//reset($row);

if(mysql_num_rows($res)>0)
 {
 while ($row = mysql_fetch_array($res))
  {
  echo "<p>".$row['bbb']."</p>\n";
  }
 }
else
 {
 echo "ERROR";
 }
?>

Das zweite WHILE liefert kein Ergebnis.
Warum?
Was muss ich ändern?

  1. $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

    1. mysql_field_seek()
      ist dies die funktion?
      wenn ja, wie funktioniert diese?

      1. mysql_field_seek()
        ist dies die funktion?

        Nein, tut mir leid, die Waschmaschine geht in den Jackpot ;)

        Gruß,
          soenk.e

        PS: http://www.php.net/manual/de/function.mysql-data-seek.php