Probleme d'affichage liste deroulante php, html, mysql

Résolu/Fermé
Mucci Messages postés 5 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 18 février 2013 - 18 févr. 2013 à 10:03
 bbcwatcher - 29 avril 2014 à 23:44
Bonjour,


j'ai créé un formulaire avec deux champs à remplir sachant que l'un des champs est une liste déroulante à remplir avec des données que je récupère dans ma base de données mysql. Cependant, le problème c'est que la liste déroulante ne m'affiche rien

J'ai testé la variable qui récupère les données depuis la base et elle contient bien les données qu'il me faut. Je pense que c'est un problème d'affichage mais je ne sais pas où

Voici mon code


<head> 
<title>creation typeOpeation</title> 
</head> 
	<body> 
		<h2>Remplissage formulaire creation type operation</h2> 
		 <form action="creationTypeOperation.php" method="post" >
			<p>Nom type operation : <br /><input type="text" name="nouveautypeOper"/></p>
			<p>
				<SELECT name="domaine" id="domaine">
					<?php// Connexion à la base de donnees C3P
						 try
						{
							$bdd = new PDO('mysql:host=localhost;dbname=basec3p', 'root', '');
						}
						catch(Exception $e)
						{
						die('Erreur : '.$e->getMessage());
						}
						echo "Connection à la base de données reussie <br>"; 
						$requete= "SELECT*FROM domaine";
						$resultatReq=$bdd->query($requete);
						
						while($ligne=$resultatReq->fetch())
						{ 
							 echo '<option value="'.$ligne['domaine'];.'">'.$ligne['domaine'];.'</option>';
						}
						$resultatReq->closeCursor();						
					?>
				</SELECT>
			</p>
			<input name="valider" type="submit" value="Valider" />
		</form> 
		
</body> 
</html>



Merci d'avance
A voir également:

8 réponses

Le soucis vient des ; après chaque variables dans ta boucle.
0
Mucci Messages postés 5 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 18 février 2013
18 févr. 2013 à 10:31
Merci de votre reponse.
enfait je l'ai corrigé mais j'ai toujours le meme soucis, rien ne s'affiche

while($ligne=$resultatReq->fetch())
						{ 
							 echo '<option value="'.$ligne['domaine'].'">'.$ligne['domaine'].'</option>';
						}
						$resultatReq->closeCursor();	
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
18 févr. 2013 à 11:22
ta requête, tu as tout attaché, mets des espaces :

$requete= "SELECT * FROM domaine";
0
Mucci Messages postés 5 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 18 février 2013
18 févr. 2013 à 11:55
Merci,
rien a toujours changé :(
0

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

Posez votre question
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
18 févr. 2013 à 11:57
la requête est bonne ? (dans phpmyadmin)
on rentre dans la boucle ? (un bête echo "coucou"; dans la boucle)
0
Mucci Messages postés 5 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 18 février 2013
18 févr. 2013 à 12:53
Merci,

effectivement il ya un truc bizarre quand meme.

Quand je fais des echos à l'interieur de la balise <select>, il n'y a rien qui s'affiche (y compris à l'interieur de la boucle).

Cependant quand j'ecris du html par exemple si je met des valeurs bidons pour les option value, il me les met mais une seule fois (donc pas de boucle , peut etre ne prend pas en compte le php làbà ??)

Or si je ne m'abuse on peut ecrit le php partout dans le code.

La connexion à la base de donnees marche bien car avec la meme boucle et la meme requette mais à l'exterieur du formulaire quand j'effectue l'affichage , ça marche nickel !

J'ai vraiement besoin de votre aide car je galere depuis pas mal de temps avec ce probleme.

Merci d'avance.
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
Modifié par xamurai le 18/02/2013 à 15:15
Apres tout apprenez à écrire des fonctions et non inserer des codes ici et là.

exemple

<html>
...
<body>
...
<select>
<?php echo getOptionList();?>
...
</html>
<?php

function getOptionList()
{
$result = "";
// codes PHP complexes
return $result;
}
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
18 févr. 2013 à 15:17
l'intérêt des fonctions, c'est de les réutiliser, là je ne pense pas que ça soit la solution
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
18 févr. 2013 à 15:23
Pas forcement: tu confonds: Fonction et la programmation Object.
Une fonction n'est pas forcement un object. de plus une fonction te permet de structurer ton code et de le rendre lisible pour autrui.
0
Mucci Messages postés 5 Date d'inscription lundi 18 février 2013 Statut Membre Dernière intervention 18 février 2013
18 févr. 2013 à 16:46
J'ai du nouveau !
En fait, j'ai essayé de mettre le SELECT apres la connexion à la base de données et puis j'ai changé la methode de connexion et l'acces à la base et çamarche nickel!

Quoi que c'est bizarre qu'il n'accêpte pas le PDO::fetch() directement car c'est la version la plus recente.
Il doit forcement exister quelque chose d'autre pour l'utiliser avec PDO::fetch().


voici le code

<head> 
<title>creation typeOpeation</title> 
</head> 
	<body> 
		<h2>Remplissage formulaire creation type operation</h2> 
		 <form action="actionTypeOper.php" method="post" >
			<p>Nom type operation : <br /><input type="text" name="nouveautypeOper"/></p>
			<p>domaine associe :</br> 
					<?php
						mysql_connect("localhost", "root", "" );  
						mysql_select_db("basec3p" );  
						$reponse = mysql_query("SELECT * FROM domaine" );
						echo'<select name="domaine">';
						while ( $donnees = mysql_fetch_array($reponse))
						{
						?>
						 <option value="<?php echo $donnees['domaine']; ?>"><?php echo $donnees['domaine']; ?></option>
						 <?php
						} 
						 echo'</select>';
						 mysql_close(); // Déconnexion de MySQL
						?>					
			</p>
			<input name="valider" type="submit" value="Valider" />
		</form> 
		
</body> 
0
Merci !!! Mon problème c'était que j'avais bien les données qui s'affichaient mais chacune dans sa propre liste déroulante (donc avec une donnée par liste...), déplacer le select avant le while a résolu le problème

<?php
/*Connection à la BDD*/
include("config.php");

$reponse = $bdd->query('SELECT * FROM nounou');
echo '<select name="etat" id="etat">';
while ($donnees = $reponse->fetch())
{
?>
<option><?php echo $donnees['nom'];?></option>
<?php
}
echo '</select>';
/*Fermeture de la BDD*/
$reponse->closeCursor();
?>
0