Mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_object()

Noter ce cours :

Liens sponsorisés :

Pour traiter via PHP des données contenues dans une base de données Mysql (et récupérées via une requête), on peut utiliser la fonction mysql_fetch_row("requete");

Cette fonction retourne un tableau contenant les valeurs pour la ligne de résultat en cours de traitement.

Pour obtenir toutes les valeurs récupérées via la requête, on fait donc une boucle (sauf si vous savez que votre requête ne va retourner qu'un seul enregistrement).

Exemple avec la fonction mysql_fetch_row() :

$requete=mysql_query("SELECT membres.mail,profil.signature,profil.config FROM membres LEFT JOIN profil ON membres.id=profil.id");

while($resultat=mysql_fetch_row($requete))
{
$mail=$resultat[0];
$signature=$resultat[1];
$config=$resultat[2];
}

On voit que mysql_fetch_row() retourne un tableau à indices numériques. L'ordre de ce tableau (ici $resultat[]) est donné par l'ordre de sélection des champs dans la requête. Ici le premier champ sélectionné est mail, ensuite signature et ensuite config.

Exemple avec mysql_fetch_array() :

mysql_fetch_array() est légèrement moins rapide que mysql_fetch_row() sur certains calculs. Elle retourne un tableau avec le nom des champs sélectionnés comme indice. L'option MYSQL_ASSOC permet de ne générer qu'un tableau associatif (et non un tableau numérique et un tableau associatif, ce qui améliore les performances) :

$requete=mysql_query("SELECT membres.mail,profil.signature,profil.config FROM membres LEFT JOIN profil ON membres.id=profil.id");

while($resultat=mysql_fetch_array($requete,MYSQL_ASSOC))
{
$mail=$resultat['mail'];
$signature=$resultat['signature'];
$config=$resultat['config'];
}

Exemple avec mysql_fetch_object() :

mysql_fetch_object() est aussi rapide que mysql_fetch_array. Elle retourne le résultat de la requête sous forme d'objets :

$requete=mysql_query("SELECT membres.mail,profil.signature,profil.config FROM membres LEFT JOIN profil ON membres.id=profil.id");

while($resultat=mysql_fetch_object($requete))
{
$mail=$resultat->mail;
$signature=$resultat->signature;
$config=$resultat->config;
}

Vous avez aimé cet article intitulé Mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_object() ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels