22 Voix

PHP: Enregistrer Résultat MySQL dans un Array

Info de Stefan Trost | Dernière mise à jour le 30/04/2021 | Créé le 23/04/2021

Lorsque l'on souhaite traiter le résultat d'une requête MySQL en PHP, il est souvent pratique, de stocker les données directement dans un tableau / array. Les fonctions importantes dans ce contexte sont mysqli_fetch_array(), mysqli_fetch_row() et mysqli_fetch_assoc(). Dans cette info, j'aimerais revenir sur cela et expliquer la différence.

Tableau indexé numériquement avec mysqli_fetch_row

La fonction mysqli_fetch_row() renvoie un tableau indexé numériquement. Cela signifie que nous pouvons accéder aux données, par exemple, avec $arr[1] ou $arr[3]:

$res = mysqli_query($db, "SELECT nom, ville, pays FROM tab WHERE id=1");
$arr = mysqli_fetch_row($res);
 
echo $arr[0];  // nom
echo $arr[1];  // ville
echo $arr[2];  // pays

Comme le montre l'exemple, l'ordre des éléments du tableau correspond à l'ordre des champs de la requête. Nous pouvons donc utiliser la requête pour déterminer comment notre tableau doit être rempli.

Tableau associatif avec mysqli_fetch_assoc

La fonction mysqli_fetch_array() retourne un tableau associatif. Cela signifie que les champs ne peuvent pas être adressés avec le numéro d'index mais avec le nom du champ. Et ce nom de champ est le nom de notre colonne de notre base de données MySQL:

$res = mysqli_query($db, "SELECT nom, ville, pays FROM tab WHERE id=1");
$arr = mysqli_fetch_assoc($res);
 
echo $arr['nom'];   // nom
echo $arr['ville']; // ville
echo $arr['pays'];  // pays

Intéressant dans ce contexte est la fonction extract(). Cette fonction peut créer automatiquement des variables individuelles avec le nom respectif du tableau, qui nous sont ensuite disponibles dans le code, comme le montre l'exemple suivant:

$res = mysqli_query($db, "SELECT nom, ville, pays FROM tab WHERE id=1");
$arr = mysqli_fetch_assoc($res);
extract($arr);
 
echo $nom;    // nom
echo $ville;  // ville
echo $pays;   // pays

La fonction list() peut également être utilisée pour créer des variables individuelles hors du tableau, comme le montre l'exemple suivant:

$res = mysqli_query($db, "SELECT nom, ville, pays FROM tab WHERE id=1");
list($nom, $ville, $pays) = mysqli_fetch_row($res);
 
echo $nom;    // nom
echo $ville;  // ville
echo $pays;   // pays

Contrairement à extract(), cependant, avec list(), nous avons la possibilité de définir librement comment nos variables doivent être appelées. Nous pouvons, mais pas obligés, nous en tenir aux noms des colonnes de notre tableau.

Le tout-en-un mysqli_fetch_array

La fonction mysqli_fetch_array() peut générer la sortie du jeu de données à la fois indexé numériquement et comme un tableau associatif. Ceci peut être réglé avec les paramètres MYSQLI_NUM ou MYSQLI_ASSOC.

Si vous omettez complètement le paramètre ou si vous utilisez MYSQLI_BOTH, vous pouvez utiliser les deux types d'index:

$arr = mysqli_fetch_array($res);  
// equivalent to mysqli_fetch_array($res, MYSQL_BOTH);
 
echo $arr[0];       // nom
echo $arr['ville']; // ville
echo $arr[2];       // pays

L'appel de mysqli_fetch_array($res, MYSQLI_NUM) équivaut à la fonction mysqli_fetch_row($res).

L'appel de mysqli_fetch_array($res, MYSQLI_ASSOC) équivaut à la fonction mysqli_fetch_assoc ($res).

RépondrePositifNégatif

Sur l’Auteur

AvatarVous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil

 

Sujets Connexes

MySQL: SELECT 0 au lieu de NULL

Question | 4 Réponses

MySQL: Calculer la Moyenne

Question | 1 Réponse

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.