mysql_fetch_array renvoie une seule ligne
Ok, j'ai le code suivant:
$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE 'a%'
OR artist LIKE 'b%'
OR artist LIKE 'c%'");
$array_result= mysql_fetch_array($array);
Puis, quand j'ai essayer de reprendre le contenu, je ne peux que l'écho $array_result[0];
, qui renvoie le premier élément, mais si j'essaie de l'echo $array_result[1];
- je obtenir un undefined offset.
Encore si j'exécute la requête ci-dessus par le biais de PHPMyAdmin il renvoie une liste de 10 éléments. Pourquoi ce n'est pas reconnu comme un tableau de 10 éléments, me permettant de me faire l'écho de 0 à 9?
Merci pour l'aide.
- Je sais que
%
est l'habitude générique, mais avez-vous essayé d'utiliser*
à la place?
Vous devez vous connecter pour publier un commentaire.
C'est parce que le tableau représente une seule ligne dans le jeu de résultats retourné. Vous devez exécuter le
mysql_fetch_array()
function de nouveau pour passer à l'enregistrement suivant. Exemple:ORDER BY
, mais vousLIMIT
, donc peut-être le record avec "pomme" est à gauche derrière, tout en filtrant.while(list($artist) = mysql_fetch_array($result)) { echo $artist; }
la liste affiche uniquement les éléments de 1 à 9 au lieu de 0-9.SHOW TABLE STATUS LIKE "tbl_name"; DESCRIBE tbl_name;
) et de sortie, nous allons essayer de voir où est le problème.Vous devriez être en utilisant
while
pour obtenir toutes les données.Je préfère utiliser ce code à la place:
Si vous ajoutez des champs à votre requête, ajoutez simplement plus de variables à list($artiste,$champ1,$champ2, etc...)
J'espère que cela aide 🙂
while($data = mysql_fetch_assoc($result)) { extract($data); /*...*/ }
. Voir: php.net/manual/en/function.extract.php