Bei der Arbeit mit Datenbanken, die PHP und MySQL verwenden, kann es vorkommen, dass Sie mehr als einmal auf dieselben Abfrageergebnisse zugreifen müssen mit der Funktion mysqli_fetch_array(). Der Versuch, mysqli_fetch_array() mehrmals für dieselbe Ergebnismenge zu verwenden, führt jedoch zu einer leeren Ausgabe.
Dies liegt daran, dass mysqli_fetch_array() den Zeiger in der Ergebnismenge abruft und vorrückt. Wenn Sie also versuchen, dasselbe Ergebnis erneut abzurufen, sind keine Daten mehr zum Abrufen übrig.
Um dieses Problem zu beheben, sollten Sie die Datenbearbeitung von der Ausgabe trennen. Rufen Sie zunächst alle Daten aus der Datenbank ab und speichern Sie sie in einem Array:
<code class="php">$db_res = mysqli_query($db_link, $sql); $data = []; while ($row = mysqli_fetch_assoc($db_res)) { $data[] = $row; }</code>
Hinweis: Seit PHP 5.3 können Sie fetch_all() anstelle der expliziten Schleife verwenden:
<code class="php">$db_res = mysqli_query($db_link, $sql); $data = $db_res->fetch_all(MYSQLI_ASSOC);</code>
Sobald Sie die Daten in einem Array gespeichert haben, können Sie es so oft wie nötig durchlaufen:
Oberste Zeile:
<code class="php">foreach ($data as $row) {</code>
Das obige ist der detaillierte Inhalt vonWie kann ich „mysqli_fetch_array()' mehrmals für dieselbe Ergebnismenge verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!