(PHP 5, PHP 7)
mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Récupère une ligne de résultat sous forme de tableau associatif
Style orienté objet
Style procédural
Retourne un tableau associatif qui correspond à la ligne
récupérée ou null
s'il n'y a plus de ligne.
Note: Les noms des champs retournés par cette fonction sont sensibles à la casse.
Note: Cette fonction définit les champs NULL à la valeur PHP
null
.
result
Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().
Retourne un tableau associatif de valeur représentant la prochaine
ligne dans le jeu de résultats représenté par le paramètre
result
, où chaque clé du
tableau représente le nom d'une colonne du résultat ou
null
s'il n'y a plus de ligne dans le jeu de résultats.
Si deux ou plus colonnes dans le jeu de résultat ont le même nom, le tableau associatif retourné par la fonction mysqli_fetch_assoc() ne contiendra que la valeur de la dernière colonne de ce nom. Si vous devez travailler avec des jeux de résultats ayant cette particularité, la fonction mysqli_fetch_row() qui retourne un tableau indexé doit être utilisée à la place.
Exemple #1 Exemple mysqli_result::fetch_assoc()
Style orienté objet
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = $mysqli->query($query);
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
Style procédural
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = mysqli_query($mysqli, $query);
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
Les exemples ci-dessus vont afficher quelque chose de similaire à :
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)
Exemple #2 Comparaison de l'usage de mysqli_result iterator et mysqli_result::fetch_assoc()
mysqli_result peut être itéré en utilisant un foreach. Le jeu de résultats sera toujours itéré à partir de la première ligne, quel que soit la position actuelle.
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';
// Utilise un itérateur
$result = $mysqli->query($query);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
echo "\n==================\n";
// N'utilise pas d'itérateur
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
Résultat de l'exemple ci-dessus est similaire à :
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA) ================== Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)