PHP/MYSQL liste déroulante exportation valeur
Résolu
DavidGinola
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
DavidGinola Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
DavidGinola Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous,
Je présente d'abord la situation.
J'ai comme projet de cours un site marchand a réaliser.
Dans ce site j'ai une page ou je peux voir la liste de mes articles, et j'ai une liste déroulante qui me permet de voir les articles selon la catégorie désirées.
J'avais réalisé en cours une technique qui marche mais qui selon mon prof n'était pas optimale car si je créait de nouvelles catégories je devais revoir tout mon code.
J'avais fais une structure avec des Si "liste déroulante contient cela" alors "afficher cela."
Vu que j'ai 5 catégories j'ai répété cette algo 5 fois et c'est cela que mon prof trouvait peu optimisé car plus il y a de catégorie plus je répète mon code
J'ai donc choisis de trouver un code sur internet pour importer les catégories dans ma BDD directement dans ma liste déroulante ce que j'ai fais grâce à ce code :
<form action="Site.php" method="post">
<select name=choix>
<?php
$SQL = "SELECT * FROM categories";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["NoCatégorie"]." :".$val["Libcatégories"]." </option>\n";
}
$id =$_POST['NoCatégorie'];
?>
</select>
<p>
<input type="submit" value="Valider" />
</p>
</form>
le probleme est que je n'arrive pas a afficher les produits en fonction de ce qu'il y a dans ma listbox.
Je pensais que le simple $_POST me permettrait d'extraire la valeur mais je n'y arrive pas une erreur me dit que le champ $id n'est pas connu
le code pour faire afficher mes produits ressemble à ça
$ordi = mysql_query('SELECT * FROM articles where NoCatégorie =$id')or die(mysql_error());
while ($donnees = mysql_fetch_array($ordi) )
{ ensuite le code pour afficher tout mes produits et leurs champs dans un tableau, inutile de le mettre car l'erreur ne vient pas de là.
PS: je ne vois cela que depuis très peu de temps donc soyez indulgent SVP
Je présente d'abord la situation.
J'ai comme projet de cours un site marchand a réaliser.
Dans ce site j'ai une page ou je peux voir la liste de mes articles, et j'ai une liste déroulante qui me permet de voir les articles selon la catégorie désirées.
J'avais réalisé en cours une technique qui marche mais qui selon mon prof n'était pas optimale car si je créait de nouvelles catégories je devais revoir tout mon code.
J'avais fais une structure avec des Si "liste déroulante contient cela" alors "afficher cela."
Vu que j'ai 5 catégories j'ai répété cette algo 5 fois et c'est cela que mon prof trouvait peu optimisé car plus il y a de catégorie plus je répète mon code
J'ai donc choisis de trouver un code sur internet pour importer les catégories dans ma BDD directement dans ma liste déroulante ce que j'ai fais grâce à ce code :
<form action="Site.php" method="post">
<select name=choix>
<?php
$SQL = "SELECT * FROM categories";
$res = mysql_query($SQL);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val["NoCatégorie"]." :".$val["Libcatégories"]." </option>\n";
}
$id =$_POST['NoCatégorie'];
?>
</select>
<p>
<input type="submit" value="Valider" />
</p>
</form>
le probleme est que je n'arrive pas a afficher les produits en fonction de ce qu'il y a dans ma listbox.
Je pensais que le simple $_POST me permettrait d'extraire la valeur mais je n'y arrive pas une erreur me dit que le champ $id n'est pas connu
le code pour faire afficher mes produits ressemble à ça
$ordi = mysql_query('SELECT * FROM articles where NoCatégorie =$id')or die(mysql_error());
while ($donnees = mysql_fetch_array($ordi) )
{ ensuite le code pour afficher tout mes produits et leurs champs dans un tableau, inutile de le mettre car l'erreur ne vient pas de là.
PS: je ne vois cela que depuis très peu de temps donc soyez indulgent SVP
A voir également:
- PHP/MYSQL liste déroulante exportation valeur
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Supprimer liste déroulante excel - Forum Excel
3 réponses
Quelque petite erreur dans le formulaire, voila la bonne version:
Lors de la reception du formulaire, tu recupere l'idée dans $_POST['choix'];
Voila
<form action="Site.php" method="post"> <select name="choix"> //Je sais pas si c'est vrai important mais il manque des guillemet autour de choix <?php $SQL = "SELECT * FROM categories"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value=".$val["NoCatégorie"].">".$val["NoCatégorie"]." :".$val["Libcatégories"]." </option>\n"; } //la structure de la liste deroulante <option value="valeur">TexteAAfficher</option> $id =$_POST['NoCatégorie']; ?> </select> <p> <input type="submit" value="Valider" /> </p> </form>
Lors de la reception du formulaire, tu recupere l'idée dans $_POST['choix'];
Voila
Bonjour,
en regardant rapidement j'ai remarqué que ta requete sql est encadré de simple côte :
Or en php, pour que des variables soient interprétées dans une chaine il faut que celle ci soit définie avec des double côte.
Essaye donc avec :
J'ai pas vraiment regardé si le reste du code est juste, mais dans tout les cas ton $id ne peut pas être interprété s'il est entre simple côte ;)
En espérant que ça t'aide ^^
en regardant rapidement j'ai remarqué que ta requete sql est encadré de simple côte :
$ordi = mysql_query('SELECT * FROM articles where NoCatégorie =$id')
Or en php, pour que des variables soient interprétées dans une chaine il faut que celle ci soit définie avec des double côte.
Essaye donc avec :
$ordi = mysql_query("SELECT * FROM articles where NoCatégorie =$id")
J'ai pas vraiment regardé si le reste du code est juste, mais dans tout les cas ton $id ne peut pas être interprété s'il est entre simple côte ;)
En espérant que ça t'aide ^^