Récupérer valeurs colonne mysql dans array

Résolu/Fermé
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014 - Modifié par Mex0s le 24/09/2010 à 13:59
 vfdsv - 26 avril 2011 à 00:39
Bonjour,

J'ai une table "produits" avec 3entrées et une colonne nommée "Marque" (seules 2 des 3 entrées ont une valeur dans cette colonne). J'essaie de faire une liste des marques que l'on peut trouver dans cette colonne (si possible en un seul exemplaire meme s'il retrouve plusieurs fois la meme marque).


$sql = "SELECT Marque FROM produits";
$reponse = mysql_query($sql);
mysql_close();
$ligne = mysql_fetch_array($reponse);
$nb_marques = count($ligne);

echo $nb_marques; //affiche 2
if (!isset ($ligne[0])){echo 'ho';} else {echo $ligne[0];} //affiche la bonne valeur
if (!isset ($ligne[1])){echo 'variable inexistante';} else {echo $ligne[1];} //affiche 'variable inexistante'

La fonction count() dit que l'array $ligne contient 2 valeurs et pourtant le deuxieme test que je fais ( !isset($ligne[1]) ) dit que cette valeur n'existe pas, je ne comprends pas Comment c'est possible.

J'espere que vous pourrez m'aider, n'hésitez pas si vous avez des questions.

D'avance merci.

A voir également:

7 réponses

Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 13
24 sept. 2010 à 14:55
T'as viré la ligne "$ligne = mysql_fetch_array($reponse);" avant de faire le while ?

Testes ça :
$sql = "SELECT Marque FROM produits";
$reponse = mysql_query($sql);

while ($ligne = mysql_fetch_array($reponse)) {
$marques[] = $ligne[0];
}

print_r($marques);
2
Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 13
24 sept. 2010 à 14:02
Fais un print_r ou un var_dump sur $ligne, comme ça tu en verras le contenu.
0
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014
24 sept. 2010 à 14:07
Bonne idée, ca me donne : [0] => Nike [Marque] => Nike

Je cherche qqchose plutot du style : [0] => Nike [1]=>Adidas [2]=>Lacie par exemple, je comprends pas pourquoi ma requette retourne cet array, c'est de ma requête que doit venir l'erreur, mais comment récupérer la liste des marques alors ?
0
Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 13
24 sept. 2010 à 14:13
J'avais pas fais gaffe à ta requête, du coup c'est normal que ça marche pas.

Mysql_fetch_array te renvoie une seule ligne de ta requête (en l'occurence la première marque), faut que tu boucles dessus avec un while, si tu veux récupérer l'ensemble des données.

while ($ligne = mysql_fetch_array($reponse)) {
echo $ligne[0];
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014
24 sept. 2010 à 14:24
Désolé, je comprends mal, le code que tu m'as donné m'affiche 2 des 3 marques de la colonne, il n'affiche pas la marque de la premiere entrée (Nike).
Voici ma table : http://mexos.free.fr/a/a.jpg

Je cherche à récupérer, avec un while peut-être l'array :
array ( [0] => Nike [1] => Lacie [2] => Cartel-S )

Comment faire (avec le while ou autrement) ? :/ (dsl j'galere un peu)
0
Mex0s Messages postés 60 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 2 septembre 2014
24 sept. 2010 à 15:00
Woot c'est parfait =). Merci pour ta précieuse aide.
0
vfvq
0