Requête MySql/PHP liste [Résolu/Fermé]

Signaler
-
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
-
Bonjour,

Je m'initie à la réalisation d'un site en PHP/MySQL et je rencontre un problème avec la requête suivante :

J'ai un BDD avec notamment ces 3 tables :

exposants (contient : NUM_EXPO et NOM_EXPO)
distributeurs (contient : NUM_EXPO et NUM_MARQUE)
marques (contient NUM_MARQUE et NOM_MARQUE)

Pour la création d'une fiche produit, je souhaite que mon exposant (n° 2913) puissent sélectionner dans une liste déroulante l'une des marques qu'il distribue :

<select name="marque" id="marque">
<option value="">...</option>
<?php
$req="SELECT * FROM distributeurs D, marques M";
$req.=" WHERE D.NUM_EXPO='2913'";
$req.=" AND D.NUM_MARQUE=M.NUM_MARQUE";
$link=connectBase("");
$result=mysql_query($req,$link);
mysql_close($link);
while ($row=mysql_fetch_row($result))
{
echo "<option value=".$row[1].">".$row[1]."</option>";
}
?>
</select>

J'obtiens la liste des numéros de marques de mon exposant alors que je voudrais faire apparaître le nom des marques...

Merci pour votre aide !

1 réponse

Messages postés
162
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
1 septembre 2009
11
echo "<option value=".$row[1].">".$row[1]."</option>";
Ca doit être probablement un pb d'indice du tableau row...
As tu bien pris en compte le fait que le 1er indice du tableau est 0 et pas 1 ?
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
131 > MaryBox
Le problème vient bien de l'indice. Remplace ta requête par ça :
$req="SELECT M.NOM_MARQUE FROM distributeurs D JOIN marques M ON (D.NUM_MARQUE=M.NUM_MARQUE)";
$req.=" WHERE D.NUM_EXPO='2913'";
et prend l'habitude de ne pas sélectionner tous les champs d'une table si tu n'en utilises qu'un.

Ensuite, tu utilises $row[0] pour récupérer la valeur.
>
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010

Merci, c'est ok pour la liste "nom des marques" mais lorsque je sélectionne une marque (je suis dans un formulaire de saisie pour la publication d'un article), mon choix n'est pas enregistré sur la BDD (le NUM_MARQUE).
Je sais, j'ai beaucoup à apprendre... indulgence STP ! et merci encore
>
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010

J'ai résolu mon pb :

$req="SELECT M.NUM_MARQUE, M.NOM_MARQUE FROM distributeurs D, marques M";

et

echo "<option value=".$row[0].">".$row[1]."</option>";

merci encore !
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
131 > MaryBox
Ben voila, même pas besoin de t'aider, tu t'en sors tout(e) seul(e) ^^ !
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
131 > MaryBox
Pour info, ORDER BY se rajoute après la clause WHERE.