Récupérer valeurs colonne mysql dans array

Résolu
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.

7 réponses

  1. 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
    1. Fais un print_r ou un var_dump sur $ligne, comme ça tu en verras le contenu.
      0
      1. 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
        1. 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
          1. 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
            1. Woot c'est parfait =). Merci pour ta précieuse aide.
              0