Résultat d'une requete sql dans un select form

Résolu
boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012 - 23 oct. 2005 à 00:42
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 23 oct. 2005 à 12:43
Bonjour à tous !



Voici mon pb :

J'ai trouvé sur le net ce code qui permet de mettre dans un formulaire select les données d'un tableau :

<? $liste= Array("Pommes","Poires","Bananes");
if($_POST["mon_champ"])

{ ?>

Vous avez choisi :

<? echo $_POST["mon_champ"]; ?>




<? } ?>



<FORM method ="POST">

<select name="mon_champ">

<?for($i=0;$i<sizeof($liste);$i++) { ?>

<option

<?if($_POST["mon_champ"]==$liste[$i])
echo "SELECTED"; ?>

><?echo $liste[$i];?></option>

<? } ?>

</select>



</FORM>



Je voudrais faire la meme chose mais avec le résultat d'une requete
sql. Je voudrais donc que mon tableau soit rempli par les résultats de
ma requete et non manuellement.



Merci de m'aider...
A voir également:

10 réponses

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
23 oct. 2005 à 12:19
Autant pour moi encore une boulette de ma part (bah! il était 3h du mat aussi) <_<



Donc le code définitif est *roulement de tambour* :



<?php

include("connexion.php");

$query = "SELECT nom_cd FROM cd, genre, chanteur";

$query.= "WHERE chanteur.num_chanteur=cd.num_chanteur and
chanteur.num_genre=genre.num_genre and lower(nom_genre) like
'%$genre%'";


$query.= "ORDER BY nom_cd ASC
";


$result = mysql_query($query);



$options = "<option value="">Choisissez</option>";

while($data =
mysql_fetch_array($result))


{

$options.="<option value="".htmlentities($data["nom_cd"])."">";

$options.= htmlentities($data["nom_cd"]) ;


$options.="</option>";


}



$select = "<select name="variable">".$options."</select>";

?>





<form method="post" action="script_quelconque.php">

<?php echo($select); ?> // Boulette!



</form>



J'avais mis <?php echo($options); ? > au lieu de <?php echo($select); ?>
3
boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012
23 oct. 2005 à 00:44
PS : le if de début ne me servira à rien considérons donc le code suivant :



<? $liste=Array("Pommes","Poires","Bananes"); ?>

<FORM method="POST">

<select name="mon_champ">

<?for($i=0;$i<sizeof($liste);$i++) { ?>

<option

<?if($_POST["mon_champ"]==$liste[$i])
echo "SELECTED"; ?>

><?echo $liste[$i];?></option>

<? } ?>

</select>



</FORM>
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
23 oct. 2005 à 03:19
<?php

$query = "SELECT value, option FROM ma_table ";

$query.= "WHERE ma_clause_where ";

// facultatif

$query.= "ORDER BY option ASC "; // facultatif

$result = mysql_query($query,$con_id) or die(mysql_error()); // $con_id est la ressource renvoyée par mysql_connect() (si tu as déjà une variable pour ça utilise la tienne, sinon il faut la créer avant)



$options = "<option value="">Choisissez</option>";
//début de la création de la
liste des options

while($data = mysql_fetch_array($result))
//
boucle d'affichage des données du tableau $data

{

$options.="<option value="".$data["value"]."">";

$options.= $data["option"] ;

$options.="</option>";


//ajout des options

}



$select = "<select name="variable">".$options."</select>"; //création du select

?>



<html>

....

<form method="post" action="script_quelconque.php">

<?php echo($options); ?>



</form>

....

</html>





Voilà =) si tu ne comprends pas ce que font certaines fonctions, cherche leur signification ici.
Et si ça ne fontionne pas (notamment mysql te renvois une erreur)
vérifie bien si ta requête est correct, je n'est donné qu'un schéma
pour exemple comme je ne connais pas la structure de ta base de données.
0
boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012
23 oct. 2005 à 11:16
Php me renvoi une erreur lorsque j'ajoute ton code.



Voici le code comme je l'ai ajouté :



<?php

include("connexion.php");

$query = "SELECT nom_cd FROM cd, genre, chanteur";

$query.= "WHERE chanteur.num_chanteur=cd.num_chanteur and
chanteur.num_genre=genre.num_genre and lower(nom_genre) like
'%$genre%'";


$query.= "ORDER BY nom_cd ASC
";


$result = mysql_query($query);



$options = "<option value="">Choisissez</option>";

while($data =
mysql_fetch_array($result))


{

$options.="<option value="".$data["value"]."">";

$options.= $data["option"] ;


$options.="</option>";


}



$select = "<select name="variable">".$options."</select>";

?>





<form method="post" action="script_quelconque.php">

<?php echo($options); ?>



</form>





Et l'erreur :



Parse error : parse error in c:\program files\easyphp1-8\www\boris\result_genre.php on line 61



Et voici la ligne 61 :



$select = "<select name="variable">".$options."</select>";



Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
23 oct. 2005 à 11:20
C'est normal, j'ai oublié d'échappé les guillemets

remplace par :

$select = "<select name="variable">".$options."</select>";



T'aurais pu trouver tout seul :p
0
boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012
23 oct. 2005 à 11:42
je suis débutant en php dsl.



Mais un nouveau problème se pose



Tout fonctionne sauf que sur ma page il réserve le nb d'emplacements
qu'il faut dans le select en fonction de ma requête mais les valeurs ne
sont pas affichées !!



Exemple : dans ma base j'ai 1 cd qui correspondent au genre rnb. Dans
le select il me met en premier "Choisissez" et en deuxième un
espace blanc. Pareil pour le genre variété française où j'ai deux
enregistrements il me met "choisissez" et deux espaces blancs.



Encore un equestion de débutant ???
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
23 oct. 2005 à 11:48
$options.="<option value="".$data["value"]."">";


$options.= $data["option"] ;


$options.="</option>";



Tu à laissé les index de la table $data comme je les avait mis, alors
que je ne pouvais pas deviner ce que ça pouvait être puisque je
connaissais pas ta base de données.

Met ça, ça devrait marcher :

$options.="<option value="".htmlentities($data["nom_cd "])."">";


$options.= htmlentities($data["nom_cd "]) ;


$options.="</option>";



(J'ai rajouté htmlentities pour éviter certains problèmes...)
0
boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012
23 oct. 2005 à 12:09
ça fonctionne mais il y a juste un dernier petit détail à régler :

Les noms des cd sont biens marqués dans mon select mais entre le select et le bouton push me il y a écrit : "choisissez" et juste a coté les noms des cd qui sont dans le select. si je ne suis pas assez clair voici le site en ligne : http://boris.szeremeta.free.fr avec l'identifiant test et mot de passe 123. Il faut effectuer la recherche par genre.

Merci.

PS : si tu as des remarques à faire sur mon site je les accepte volontiers.
0
boninou Messages postés 59 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 16 mai 2012
23 oct. 2005 à 12:33
merci beaucoup de ton aide.

A bientot
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
23 oct. 2005 à 12:43
de rien ;)
0
Rejoignez-nous