mysql_fetch_array

(PHP 3, 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

Description

array mysql_fetch_array ( resource result [, int result_type] )

mysql_fetch_array() retourne un tableau qui contient la ligne demandée dans le résultat result, ou FALSE s'il ne reste plus de ligne.

mysql_fetch_array() est une version étendue de mysql_fetch_row(). En plus d'enregistrer les données sous forme d'un tableau à indice numérique, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme indices.

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.

Exemple 1. Requête avec duplication de nom de colonnes

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Il est important de souligner que mysql_fetch_array() N'est PAS significativement plus lente que mysql_fetch_row(), tandis qu'elle ajoute un confort d'utilisation important.

L'option result_type de mysql_fetch_array() est une constante qui peut prendre les valeurs suivantes : MYSQL_ASSOC, MYSQL_NUM et MYSQL_BOTH.Cette fonctionnalité a été ajoutée en PHP 3.0.7. MYSQL_BOTH est la valeur par défaut de cet argument.

En utilisant MYSQL_BOTH, vos obtiendrez un tableau qui sera à la fois associatif et indexé numériquement. En utilisant MYSQL_ASSOC, vous obtiendrez un tableau associatif (tout comme le fait mysql_fetch_assoc()), et en utilisant MYSQL_NUM, vous obtiendrez un tableau indexé nuériquement (comme le fait mysql_fetch_row()).

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 2. Exemple de 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]);  
}
?>

Exemple 3. Exemple de 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. Exemple de 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);
?>

Voir aussi mysql_fetch_row(), mysql_fetch_assoc(), mysql_data_seek() et mysql_query().