Position actuelle: Accueil> Derniers articles> Comment utiliser MySQL_Fetch_Array et Foreach Loops en combinaison

Comment utiliser MySQL_Fetch_Array et Foreach Loops en combinaison

gitbox 2025-05-29

1. Utilisation de base de mysql_fetch_array

La fonction mysql_fetch_array prend une ligne du jeu de résultats en tant que tableau et renvoie le tableau contenant à la fois l'association et l'index par défaut:

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

Ici $ row est un enregistrement obtenu dans chaque boucle, et le type est un tableau.

2. Forach traverse le tableau des enregistrements uniques

Lorsque vous obtenez un enregistrement de MySQL_Fetch_Array , vous utilisez généralement ForEach pour parcourir tous les champs de ces données:

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

C'est correct, car $ row lui-même est un tableau.

3. Vous ne pouvez pas utiliser FOREACH directement pour les résultats de la requête

Notez que mysql_fetch_array renvoie un seul enregistrement et ne peut pas utiliser directement ForEach pour les ressources de résultat de requête:

 foreach ($result as $row) {
    // Mauvaise utilisation,$resultC&#39;est une ressource,Pas un tableau
}

Cette méthode d'écriture est erronée et mènera à une erreur.

4. Méthode de combinaison correcte: utilisez d'abord une boucle while pour lire toutes les données dans le tableau, puis utilisez FOREACH pour traverser

Si vous souhaitez utiliser ForEach pour parcourir tous les enregistrements, la pratique courante consiste à lire tous les résultats dans un tableau d'abord, puis à traverser:

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

foreach ($rows as $record) {
    // Traiter chaque enregistrement
    echo $record['username'] . "<br>";
}

De cette façon, vous pouvez facilement gérer tous les enregistrements dans Foreach .

5. Utilisez MySQL_ASSOC pour éviter la redondance des données

Le tableau renvoyé par mysql_fetch_array par défaut a à la fois des index numériques et des index associés, entraînant une redondance des données. Il est recommandé d'obtenir uniquement des tableaux associatifs:

 while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    // $rowNe contient que des tableaux associatifs
}

De cette façon, le tableau est plus simple et la traversée FOREAK est plus pratique.

6. Exemple de code complet

 <?php
// Connectez-vous à la base de données
$link = mysql_connect("gitbox.net", "username", "password");
mysql_select_db("testdb", $link);

// Données de requête
$result = mysql_query("SELECT id, username, email FROM users");

// Lisez toutes les données
$rows = [];
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $rows[] = $row;
}

// utiliserforeachItérer à travers tous les enregistrements
foreach ($rows as $record) {
    echo "utilisateurID: " . $record['id'] . "<br>";
    echo "utilisateur名: " . $record['username'] . "<br>";
    echo "Mail: " . $record['email'] . "<br><hr>";
}

// Fermer la connexion
mysql_close($link);
?>