{MySQL} résultat requête SQL dans lste déroulante
Résolu
nath
-
nath -
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
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
Configuration: Mac OS X Safari 531.9
2 réponses
-
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 -
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>