mysql_fetch_array

Transformation des résultats en tableau

12/09/2008 3412 lectures 0 commentaire 4.67/5 (3 votes)
Cette fonction est très pratique et vous l'utiliserez certainement très souvent. Comme nous l'avons vu dans un cours précédent, il est possbile de récupérer les valeurs des enregistrements revnoyés par un SELECT grâce à mysql_result. Le problème avec cette fonction est que si les enregistrements contiennent 40 colonnes et que vous désirez récupérer toutes les valeurs, cela devient vite fastidieux. Il existe donc la fonction mysql_fetch_array qui permet de convertir un enregistrement d'un jeu de résultat en tableau. Ce tableau sera soit identifié par des valeurs numériques, soit associatif, soit les deux. Mais voyons d'abord la syntaxe de cette fonction :



Le premier argument de cette fonction est la ressource renvoyée par mysql_query tandis que le deuxième paramètre désigne de quel type sera le tableau renvoyé. Comme nous l'avons vu précédemment, voici les trois types de tableaux possibles :

MYSQL_ASSOC : tableau associatif
MYSQL_NUM : tableau numérique
MYSQL_BOTH (par défaut) : tableaux associatif et numérique

Passons à un exemple. Imaginez la table suivante :

Image


Commencez par simplement faire une sélection des noms et des prénoms de toutes les personnes :



Si vous exécutez ce script, vous obtiendrez :

Einstein Albert
Eiffel Gustave
Cage Nicolas

Comme vous le voyez cela a très bien fonctionné. En effet, mysql_fetch_array lit un enregistrement, le convertit dans le tableau valeur qui sera du type numérique grâce à MYSQL_NUM et ensuite, il avance le curseur d'un pas dans le jeu d'enregistrement renvoyé par le SELECT. C'est ainsi qu'il avance d'enregistrement en enregistrement et qu'il sort de la boucle une fois qu'il n'a plus d'enregistrement à lire. Voyons maintenant comment cela fonctionnerait avec MYSQL_ASSOC :



Le résultat serait :

Einstein Albert
Eiffel Gustave
Cage Nicolas

Comme vous le voyez, c'est bien plus clair avec un tableau associatif. Les clés du tableau seront le nom des champs sélectionnés dans votre requête SQL. Si deux colonnes portent le même nom, c'est le résultat de la dernière colonne qui sera récupéré. Vous pourrez récupérez la valeur de la première colonne grâce à son index numérique et MYSQL_BOTH. D'une manière générale, nous vous conseillons de toujours faire attention à ce qu'aucune colonne de vos requêtes ne porte le même nom, utilisez donc les alias SQL pour éviter cela. Regardez l'exemple suivant avec MYSQL_BOTH :



Encore une fois, le résultat sera le même.

Voter :

0 commentaires

Ajouter un commentaire