mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc --  Lit une ligne de résultat MySQL dans un tableau associatif

Description

array mysql_fetch_assoc ( resource result )

mysql_fetch_assoc() retourne un tableau associatif qui contient la ligne lue dans le résultat result, ou bien FALSE s'il ne reste plus de lignes à lire.

mysql_fetch_assoc() est équivalente à mysql_fetch_array() utilisée avec l'option MYSQL_ASSOC. Elle ne retourne qu'un tableau associatif. C'est le fonctionnement original de mysql_fetch_array(). Si vous avez besoin d'indices numériques, utilisez mysql_fetch_array().

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 mysql_fetch_array() et les indices numériques.

Une chose importante à noter est que mysql_fetch_assoc() N'est PAS significativement plus lente que mysql_fetch_row(), alors qu'elle apporte un confort d'utilisation important.

Pour plus de détails, reportez-vous à mysql_fetch_row() et mysql_fetch_array().

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définie les champs NULL à la valeur PHP NULL.

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 d'accéder à la base de données : " . 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);
?>

Voir aussi mysql_fetch_row(), mysql_fetch_array(), mysql_data_seek(), mysql_query() et mysql_error().