Bonjour,

voila mon probleme, je voudrai faire un formulaire avec une zone de saisie deroulante <select> qui irai recuperer les donnees qui sont dans une table de ma base de donnees est ce possible?

je vous joint mon formulaire:

<form method="post" action="agence.php">
            Nom Agence :<input type="text" name="nom_agence" /><br />
            Code Mnemonique :<input type="text" name="code_mnemo" /><br />
            Code Numerique :<input type="text" name="code_num" /><br />
            Code Facturation :<input type="text" name="code_facturation" /><br />
            Proprietaire :<input type="text" name="prop" /><br />
               <select>
            <?php
            require "config.php";
                    mysql_connect(DB_SERVER,DB_LOGIN,DB_PASS);
                    mysql_select_db(DB_NAME);
                    mysql_query('SET NAMES '.DB_ENC);
            $sql = "SELECT * FROM t_concess";

            $req=mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
            while($data=mysql_fetch($req)){
               echo "<option>".$data"nom_concess"]."</option>\n";
            }
            ?>
               </select>
            <input type="submit" value="Envoyer" />
         </form>

merci d'avance pour votre aide

Gilles

7 réponses


WinuX
Réponse acceptée

Dans ce cas, à ta place je ferais ainsi :

$sql = 'SELECT * FROM nom_concess';
$req = mysql_query($sql);
echo '<select name="mon_select" >';
while($res = mysql_fetch_assoc($req)){
    echo '<option value="'.$res'nom_concess'].'" >'.$res'nom_concess'].'</option>';
}
echo '</select>';

Pour récupérer les données, t'auras juste à faire $_POST'mon_select'] ^^

gilles40
Auteur
Réponse acceptée

Bonjour,

Merci WinuX cela fonctionne.

Gilles

il faut rajouter l'attribut name a la balise <select> et tout sera bon, non ? sinon je ne comprends pas le probleme

tu n'arrive pas a faire quoi o juste , a ce que je vois ta liste déroulante est présente avec les données de $data'nom_concess'] .
peut être ton problème vient du fait que tu n'a pas mis de value=$data'id'] dans ta balise option de ton select, donc lorsque tu sélectionne exécute ton formulaire, ton script ne récupère pas de données de ton select.

EDIT : j'avais pas remarqué qu'il manqué aussi un name au select, c probablement ça

$data=mysql_fetch($req)

.
Déjà je me demande si cela existe.

$data = mysql_fetch_row($req)

Sa serait mieux non ?
Ensuite moi aussi je comprend pas ta question.

Il faut avant tout ajouter un nom à ton select :

<select name="ton_nom">

Puis il faut ajouter aussi une valeur à tes options :

<option value="ta_valeur_a_envoyer_en_bdd">Le nom affiché</option>

Concernant le mysql_fetch(), je suis pas non plus sur de son existance, perso j'utilise toujours mysql_fetch_assoc()

gilles40
Auteur

Bonjour,

tout d'abords merci pour vos reponse,

concernant le mysql_fetch j'ai fait la modification en mysql_fetch_assoc($req); mais cela ne fonctionne plus.
je vais essayer d'etre un peu plus clair dans ma question:

j ai une bases de donnees avec 2 tables une table "agence" et une table "nom_concess" lorsque je creer une nouvelle agence je voudrai dans le formulaire de saisie pouvoir recuperer le nom du concessionnaire dans la table "nom_concess" avec une liste deroulante, voila j espere avoir ete plus explicite, je vous remercie d'avance de votre aide.

Bonne journée

Gilles