(PHP 4 >= 4.0.3, PHP 5, PECL mysql:1.0)
mysql_fetch_assoc — Lit une ligne de résultat MySQL dans un tableau associatif
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.
La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query() .
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, vous devez 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 1582. 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 utilisez 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
);
?>
Performance: Une chose importante à noter est que l'utilisation de mysql_fetch_assoc() n'est pas significativement plus lent 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 .
mysql_fetch_row() |
mysql_fetch_array() |
mysql_data_seek() |
mysql_query() |
mysql_error() |