{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
A voir également:
- {MySQL} résultat requête SQL dans lste déroulante
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Lexer resultat - Télécharger - Sport
- Mysql community server - Télécharger - Bases de données
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 :
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
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>
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