{MySQL} résultat requête SQL dans lste déroulante [Résolu/Fermé]

Signaler
-
 nath -
Bonjour,
J'essaye de créer une page PHP qui permettrait de sélectionner une ligne d'une table (stockée dans PhpMyAdmin) via d'une requête SQL.
Pour l'instant je n'ai que la première ligne qui s'affiche, je n'arrive pas à avoir la liste complète.
Voici mon code:

<html >
<head>
<title>Selection d'un CMD</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>

<body>
<center>
<?php
$connexion=mysql_connect('localhost','root','root') or die ("Connexion impossible.");
$db=mysql_select_db('mysql',$connexion) or die ("Base de données non accessible.");
$resultat=mysql_query("select Libelle from CMD order by CMD") or die ("Requête non executée.");
$module=mysql_fetch_array($resultat)
?>

<form name="choixCMD" action="pageCMD_action.php" method="POST">
<h3>Choisissez le CMD </h3>
<select name="module">
<?php
foreach ($module as $val) {
echo "<option value=$val>" . $val . "</option>";
}
?>
</select>
<input type="submit" value="Envoyer"><br/>
</form>
</center> </body></html>

Si qqun a une idée pour m'aider

Merci,

Nath

2 réponses

Messages postés
1041
Date d'inscription
lundi 4 mai 2009
Statut
Webmaster
Dernière intervention
21 avril 2020
60
Bonjour,

En fait, la fonction mysql_fetch_array ne récupère que l'enregistrement courant (par défaut le premier), sous forme comme son nom l'indique d'un tableau :)

Pour récupérer la totalité des enregistrements, tu dois parcourir l'ensemble des résultats, voici un exemple :
while ($row = mysql_fetch_array($resultat, MYSQL_NUM)) {
   echo "<option value={$row[0]}>{$row[0]}</option>"; 
}


Le 2ème paramètre te permet de choisir de récupérer l'enregistrement avec des clés numériques (1er champ=0, 2ème=1, ... ou par nom de champ ...

Et la doc officielle qui explique tout cela :
https://www.php.net/manual/fr/function.mysql-fetch-array.php

Bon courage
Merci pour cette réponse.
J'ai bien le résultat de la requête qui s'affiche, mais pas dans une liste déroulante. Elle apparaît en haut de la page php.
Une idée pour m'aider à l'afficher dans une liste déroulante?

Merci,

Nath
Messages postés
1041
Date d'inscription
lundi 4 mai 2009
Statut
Webmaster
Dernière intervention
21 avril 2020
60
parce que tu n'as pas dû mettre le code entre le <SELECT> et </SELECT> peut-être ?

<form name="choixCMD" action="pageCMD_action.php" method="POST">
<h3>Choisissez le CMD </h3>
<select name="module">
<?php
while ($row = mysql_fetch_array($resultat, MYSQL_NUM)) {
   echo "<option value={$row[0]}>{$row[0]}</option>"; 
}
?>
</select>
<input type="submit" value="Envoyer"><br/>
</form> 
Super!
Merci ça marche bien maintenant!
Effectivement, je l'avais pas mis au bon endroit, c'est plus logique comme ça :)

Merci encore!

Bonne journée,

Nath