(PHP 4 >= 4.0.3, PHP 5)
mysql_fetch_assoc — Lit une ligne de résultat MySQL dans un tableau associatif
Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez utiliser l'extension MySQLi ou l'extension PDO_MySQL. Voir aussi MySQL : choisir une API du guide. Alternatives à cette fonction :
mode en tant que PDO::FETCH_ASSOC
mysql_fetch_assoc() retourne un tableau associatif
qui contient la ligne lue dans le résultat result et
déplace le pointeur interne de données.
mysql_fetch_assoc() revient à appeler la fonction
mysql_fetch_array() avec MYSQL_ASSOC
en tant que second paramètre. Cette fonction retourne uniquement
un tableau associatif.
result
Retourne un tableau associatif de chaînes
qui contient la ligne lue dans le résultat result,
ou bien false s'il ne reste plus de lignes à lire.
Si plusieurs colonnes portent le même nom, la dernière aura la priorité. Pour accéder aux autres colonnes du même nom, il faut utiliser la fonction mysql_fetch_row() avec les indices numériques ou utiliser les alias sur les noms. Regardez la documentation sur la fonction mysql_fetch_array() pour plus d'informations sur les alias.
Exemple #1 Exemple avec mysql_fetch_assoc()
<?php
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Impossible de se connecter à la base de données : " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Impossible de sélectionner la base mydbname : " . mysql_error();
exit;
}
$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";
$result = mysql_query($sql);
if (!$result) {
echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "Aucune ligne trouvée, rien à afficher.";
exit;
}
// Tant qu'une ligne existe, place cette ligne dans la variable $row
// sous la forme d'un tableau associatif.
// Note : Si vous n'attendez qu'une seule ligne, oubliez la boucle
// Note : Si vous utiliser extract($row); dans la boucle suivante
// vous créerez $userid, $fullname et $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}
mysql_free_result($result);
?>Note: Performance
Une chose importante à noter est que l'utilisation de mysql_fetch_assoc() n'est pas significativement plus lente que l'utilisation de mysql_fetch_row(), alors qu'il fournit des valeurs significatives ajoutées.
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.