Sven Rautenberg: SQL - Resultate mehrmals durchlaufen ?

Beitrag lesen

Moin!

jetzt hab ich eine Fehlermeldung

Variable passed to reset() is not an array or object

bei der Zeile

reset($result);

da $result das Ergebnis einer SQL-Abfrage ist. Gibt es dafür auch eine Möglichkeit, den Zeiger zurückzusetzen ?

anstatt row versuch mal einen array
also
odbc_fetch_array
dann hast du deinen array.

Das Problem liegt tiefer: reset() setzt den PHP-internen Zeiger eines Arrays zurück auf den Anfang, aber nicht den Datenquellenzeiger einer Datenbankabfrage - deshalb klappt reset() hier nicht.

Besser wäre doch, eine Datenbankfunktion zu nehmen:

mysql_field_seek()
msql_field_seek()
mssql_field_seek()
sybase_field_seek()

Das einzige, was fehlt, ist odbc_field_seek - vermutlich, weil man diese Funktion mit ODBC nicht benutzen kann, weil es keine allgemeine Datenbankfunktion ist. Und so bleiben nur zwei Möglichkeiten: Entweder die Ergebnisse der Datenbankabfrage beim ersten Mal gleich in ein Array einlesen und beim zweiten Mal darauf zugreifen, oder zweimal die Datenbank abfragen.

- Sven Rautenberg