Heim >Datenbank >MySQL-Tutorial >Kann ich mit mysql_*-Funktionen eine MySQL-Ergebnismenge zweimal durchlaufen?
Beim Arbeiten mit MySQL-Ergebnismengen unter Verwendung der mysql_*-Funktionen stellt sich häufig die Frage: Kann man eine Schleife durchlaufen? die gleiche Ergebnismenge mehrmals?
Normalerweise führt die Übergabe einer MySQL-Abfrage an mysql_query zu einem Ergebnis set, das mit mysql_fetch_assoc durchlaufen wird, um auf einzelne Zeilen als assoziative Arrays zuzugreifen. Nachdem die Ergebnismenge vollständig durchlaufen wurde, erreicht der Zeiger standardmäßig das Ende, sodass ein erneutes Durchlaufen der Ergebnisse nicht mehr möglich ist.
Es gibt jedoch eine Problemumgehung, um den Zeiger zurückzusetzen und die Ergebnismenge zu durchlaufen wiederholt.
Um dies zu erreichen:
$result = mysql_query(/* Your query */); while($row = mysql_fetch_assoc($result)){ // Process the row here... } // Reset the pointer to the beginning mysql_data_seek($result, 0); while($row = mysql_fetch_assoc($result)){ // Process the row again... }
Indem Sie den Zeiger mit mysql_data_seek(0) zurück an den Anfang bewegen, Es ist möglich, dieselbe Ergebnismenge mehrmals zu durchlaufen.
Es ist jedoch zu beachten, dass von dieser Vorgehensweise generell abgeraten wird. Dies gilt als ineffizient und fehleranfällig im Vergleich zur Durchführung aller erforderlichen Verarbeitungen innerhalb einer einzigen Iteration des Ergebnissatzes.
Das obige ist der detaillierte Inhalt vonKann ich mit mysql_*-Funktionen eine MySQL-Ergebnismenge zweimal durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!