(PHP 4, PHP 5)
mysql_fetch_array —
Retourne une ligne de résultat MySQL sous la forme d'un tableau
associatif, d'un tableau indexé, ou les deux
Avertissement
Cette extension
était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0. À la place, vous pouvez
utiliser l'extension MySQLi ou l'extension
PDO_MySQL. Voir aussi
MySQL : choisir une API du guide.
Alternatives à cette fonction :
- mysqli_fetch_array()
- PDOStatement::fetch()
Description
mysql_fetch_array(resource
$result, int
$result_type = MYSQL_BOTH): array
Liste de paramètres
-
result
-
La ressource de résultat qui vient d'être évaluée.
Ce résultat vient de l'appel à la fonction mysql_query().
-
result_type
-
Le type de tableau à récupérer. C'est une constante qui peut prendre
les valeurs suivantes : MYSQL_ASSOC,
MYSQL_NUM, et
MYSQL_BOTH.
Valeurs de retour
Retourne un tableau de chaînes qui correspond à la ligne récupérée ou false
s'il n'y a plus de lignes. Le type de tableau retourné dépend de la
définition du paramètre result_type.
En utilisant MYSQL_BOTH (défaut), vous
récupérerez un tableau contenant des indices associatifs et numériques.
En utilisant MYSQL_ASSOC, vous ne récupérerez que
les indices associatifs (comme le fonctionnement de la fonction
mysql_fetch_assoc()), en utilisant MYSQL_NUM,
vous ne récupérerez que les indices numériques (comme le fonctionnement
de la fonctionmysql_fetch_row()).
Si plusieurs colonnes portent le même nom, la dernière colonne
aura la priorité. Pour accéder aux autres colonnes du
même nom, vous devez utiliser l'index numérique, ou
faire un alias pour chaque colonne. Pour les alias de colonnes,
vous ne pourrez pas accéder aux contenus avec les noms originaux
des colonnes.
Exemples
Exemple #1 Requête avec duplication de nom de colonnes
SELECT table1.field AS foo, table2.field AS bar FROM table1, table2
Exemple #2 mysql_fetch_array() avec MYSQL_NUM
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID : %s Nom : %s", $row[0], $row[1]);
}
mysql_free_result($result);
?>
Exemple #3 mysql_fetch_array() avec MYSQL_ASSOC
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID : %s Nom : %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>
Exemple #4 mysql_fetch_array() avec MYSQL_BOTH
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID : %s Nom : %s", $row[0], $row["name"]);
}
mysql_free_result($result);
?>
Notes
Note:
Performance
Une chose importante à noter est que l'utilisation de
mysql_fetch_array() 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.
Voir aussi