Vous êtes ici > Liste des fonctions PHP et MySQL > Description de la fonction mysql_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.
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 #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 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);
?>
Note: 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.
<?php /* ... */
if (!$Ressource and $this->Debogue) throw new Erreur ('Erreur de requête SQL!!!');
while ($Ligne = mysql_fetch_assoc($Ressource))
{
/* ... */ ?>
<?php /* ... */
$req = mysql_query('SHOW TABLE STATUS', $lk);
while($data = mysql_fetch_assoc($req)) {
//on regarde seulement les tables qui affichent des pertes
/* ... */ ?>
<?php /* ... */
$rs = mysql_query(" SHOW FULL FIELDS FROM '$table' ") or die(mysql_error());
while ($row=mysql_fetch_assoc($rs)) {
if ($row['Collation']!=$convert_from)
/* ... */ ?>
<?php /* ... */
$res = mysql_query($sql);
$alors = mysql_fetch_assoc($res);
// UNE BOUCLE POUR INFORMER L'UTLISATEUR
/* ... */ ?>
<?php /* ... */
// affiche le nombre de champs dans la table
while ($contenu = mysql_fetch_assoc($champ))
{
/* ... */ ?>