daniel: 2x mysql_fetch_row ?

hallo forumler,

ich hätte mal eine ziemliche anfängerfrage, also nicht lachen ;-)

wenn ich eine mysql-abfrage mache, und will mir das ergebnis ausgeben lassen, sieht das bei mir so aus:

while($row=mysql_fetch_row($base))
{
  echo "$row[0] $row[1] $row[2]";
}

klappt auch wunderbar.
nur ein problem: wenn ich genau dieselben daten NOCHMAL ausgeben will, kommt nichts...

meinem begrenzten verständinis nach, holt mysql_fetch_row in der schleife einen datensatz (eine zeile) nach der anderen aus $base und schreibt sie in $row, was ein array ist.
nachdem die schleife durchgelaufen ist, ist sie "am ende" also in der letzten reihe, oder? da die leer ist, kommt auch bei der ausgabe nichts....

wie kann ich es jetzt anstellen, daß $row wieder auf reihe 1 (also die datensätze der ersten zeile aus der abfrage) zurückspringt?
und wie kann ich die datensätze dann ausgeben?

oder bin ich da gedanklich schon total verkehrt?
sorry, beschäftige mich erst seit ein paar wochen mit php....

grüße daniel

  1. ich hätte mal eine ziemliche anfängerfrage, also nicht lachen ;-)

    Hier wird nicht gelacht, hier wird gleich erschossen ;)

    wenn ich eine mysql-abfrage mache, und will mir das ergebnis ausgeben lassen, sieht das bei mir so aus:

    while($row=mysql_fetch_row($base))
    {
      echo "$row[0] $row[1] $row[2]";
    }

    Tipp: Nimm statt mysql_fetch_row mysql_fetch_assoc. Damit bekommen die Einträge in $row Namen statt Nummern (z.B. $row["kundennummer"] statt $row[0]) und man verheddert sich nicht mehr so leicht.

    meinem begrenzten verständinis nach, holt mysql_fetch_row in der schleife einen datensatz (eine zeile) nach der anderen aus $base und schreibt sie in $row, was ein array ist.

    Richtig.

    nachdem die schleife durchgelaufen ist, ist sie "am ende" also in der letzten reihe, oder? da die leer ist, kommt auch bei der ausgabe nichts....

    Richtig. Am Ende des Ergebnisses geben mysql_fetch_*() false zurück, deshalb funktioniert das ja auch mit der while-Schleife.

    wie kann ich es jetzt anstellen, daß $row wieder auf reihe 1 (also die datensätze der ersten zeile aus der abfrage) zurückspringt?

    Suchen=seek und Daten=data => mysql_data_seek().

    und wie kann ich die datensätze dann ausgeben?

    Einfach wieder mit der Schleife arbeiten.

    sorry, beschäftige mich erst seit ein paar wochen mit php....

    Na, ein paar Wochen hätten aber zum Stöbern im MySQL-Kapitel der PHP-Anleitung (http://www.php.net/manual/de/ref.mysql.php) ausgereicht :)

    Gruß,
      soenk.e