Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich „mysqli_fetch_array()' mehrmals für dieselbe Ergebnismenge verwenden?

Wie kann ich „mysqli_fetch_array()' mehrmals für dieselbe Ergebnismenge verwenden?

DDD
DDDOriginal
2024-11-02 08:15:03540Durchsuche

How Can I Use `mysqli_fetch_array()` Multiple Times on the Same Resultset?

Mehrmalige Verwendung von mysqli_fetch_array()

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn