mysql_fetch_array
vous obtiendrez un tableau qui peut avoir comme clés :
- les numéros et les noms des colonnes, si vous utilisez
MYSQL_BOTH
- noms des colonnes, en utilisant
MYSQL_ASSOC
-- dans ce cas, vous obtiendrez la même chose que lorsque vous utilisezmysql_fetch_assoc
- uniquement des nombres (en fonction de l'ordre des colonnes dans la requête), si vous utilisez
MYSQL_NUM
Obtenir des résultats indexés par noms de colonnes est probablement la solution la plus utile - plus facile à utiliser, au moins.
Mais obtenir des résultats indexés par les positions des champs dans la clause select est intéressant dans une situation :lorsque vous avez plusieurs colonnes qui ont le même nom ou alias.
Dans ce cas, comme vous ne pouvez pas avoir deux entrées avec le même index dans un tableau, vous ne pourrez accéder qu'à une seule de ces colonnes en utilisant le nom de la colonne comme index.
Pour les autres colonnes portant le même nom, vous devrez utiliser des index numériques.
Cette situation est probablement le seul cas pour lequel j'utiliserais mysql_fetch_array
-- et je préfère plutôt utiliser des alias dans ma requête, pour éviter cette situation -- c'est plus clair, à mon avis.
mysql_fetch_assoc
vous obtiendrez un tableau, avec des noms de colonnes comme clés et des données comme valeurs.
Pas grand chose à dire, en fait.
Et mysql_fetch_object
vous rapportera des objets en retour.
Choisir entre mysql_fetch_assoc
et mysql_fetch_object
dépendra très probablement de la façon dont vous développez votre application :si vous utilisez des objets partout, le second est probablement le plus adapté.
Si vous utilisez des tableaux comme conteneurs de données, vous pouvez simplement utiliser le premier.