Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie MySQL_Fetch_array und foreach Loops in Kombination

So verwenden Sie MySQL_Fetch_array und foreach Loops in Kombination

gitbox 2025-05-29

1. Grundnutzung von MySQL_Fetch_array

Die Funktion von MySQL_Fetch_array nimmt eine Zeile aus dem als Array eingestellten Ergebnis ein und gibt das Array, das standardmäßig sowohl Assoziation als auch Index enthält, zurück:

 $result = mysql_query("SELECT * FROM users");
while ($row = mysql_fetch_array($result)) {
    print_r($row);
}

Hier ist $ row ein Datensatz, der in jeder Schleife erhalten wird, und der Typ ist ein Array.

2. Für durchquert die Auswahl der einzelnen Datensätze

Wenn Sie einen Datensatz von MySQL_Fetch_array erhalten, verwenden Sie normalerweise Foreach , um alle Felder dieser Daten zu iterieren:

 while ($row = mysql_fetch_array($result)) {
    foreach ($row as $key => $value) {
        echo "$key => $value<br>";
    }
}

Dies ist richtig, da $ row selbst ein Array ist.

3.. Sie können für Abfragenergebnisse nicht direkt verwenden

Beachten Sie, dass MySQL_Fetch_array einen einzelnen Datensatz zurückgibt und Foreach für Abfrageergebnisressourcen nicht direkt verwenden kann:

 foreach ($result as $row) {
    // Falsche Verwendung,$resultEs ist eine Ressource,Kein Array
}

Diese Schreibmethode ist falsch und führt zu einem Fehler.

4. Richtige Kombination

Wenn Sie verwenden möchten , um alle Aufzeichnungen zu durchqueren, besteht die gängige Praxis darin, zuerst alle Ergebnisse in ein Array zu lesen und dann zu überqueren:

 $rows = [];
while ($row = mysql_fetch_array($result)) {
    $rows[] = $row;
}

foreach ($rows as $record) {
    // Verarbeiten Sie jeden Datensatz
    echo $record['username'] . "<br>";
}

Auf diese Weise können Sie problemlos alle Datensätze in foreach behandeln.

5. Verwenden Sie MySQL_assoc , um die Redundanz von Daten zu vermeiden

Das von MySQL_Fetch_array zurückgegebene Array hat standardmäßig sowohl numerische und zugehörige Indizes, was zu einer Datenreduktion führt. Es wird empfohlen, nur assoziative Arrays zu erhalten:

 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    // $rowEnthält nur assoziative Arrays
}

Auf diese Weise ist das Array einfacher und der Foreach -Traversal bequemer.

6. Beispiel Code Code

 <?php
// Stellen Sie eine Verbindung zur Datenbank her
$link = mysql_connect("gitbox.net", "username", "password");
mysql_select_db("testdb", $link);

// Abfragedaten
$result = mysql_query("SELECT id, username, email FROM users");

// Alle Daten lesen
$rows = [];
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $rows[] = $row;
}

// verwendenforeachDurch alle Aufzeichnungen iterieren
foreach ($rows as $record) {
    echo "BenutzerID: " . $record['id'] . "<br>";
    echo "Benutzer名: " . $record['username'] . "<br>";
    echo "Post: " . $record['email'] . "<br><hr>";
}

// Schließen Sie die Verbindung
mysql_close($link);
?>