Obtention du résultat d'une requête SQL en PHP
Dans la leçon précédente, nous avons créé un code de test. Je rappelle sa partie essentielle, qui exécute une requête à la base de données :
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Comme vous le voyez, après que la requête
à la base de données ait eu lieu, la variable $res
contiendra le résultat de cette action. Cependant,
il n'est pas sous la forme dont nous avons besoin
en PHP, mais sous la forme sous laquelle la base
de données nous l'a envoyé.
Pour obtenir le résultat sous une forme qui nous est familière,
il est nécessaire d'utiliser la fonction
mysqli_fetch_assoc, qui extrait du
résultat une seule ligne.
Essayons :
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
En résultat, var_dump affichera un tableau
avec le premier employé :
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
En même temps, le premier employé disparaîtra de la variable $res,
et le prochain appel de mysqli_fetch_assoc
obtiendra déjà l'employé suivant.
Et ainsi, nous pouvons appeler notre fonction
jusqu'à ce que les employés soient épuisés.
Dès que cela se produira, le prochain appel
de la fonction retournera false.
Essayons :
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // employé numéro 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // employé numéro 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // employé numéro 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // employé numéro 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // employé numéro 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // employé numéro 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // affichera NULL - plus d'employés
?>