Page 1 sur 1

Multiple affichage déroulant

Posté : 23 févr. 2013, 16:11
par Samuel6790
Bonjour.

J'ai un souci d'affichage avec une liste déroulante. En effet le script me crée autant de listes à un élément que de lignes dans ma table.
Qq'un a-t-il une idée de ce que j'ai mal codé. Cela fait plusieurs jours que je teste des solutions mais qui ne sont pas satisfaisantes. Voici mon script
Merci d'avance
<?php 					//EN MYSQL
						//requête SLECT en MYSQL
						$sql="select *FROM famille order by nom asc";
						//récupération des variables
						$res=mysql_query($sql);
						/*// EN PDO
						$sql=$connexion->query("SELECT * FROM famille ORDER BY nom ASC");//requête SELECT sur la base famille 
						$sql->setFetchMode(PDO::FETCH_OBJ()); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
						while($data = $sql->fetch())// on récupère la liste des familles 
		{		*/
					while ($data=mysql_fetch_assoc($res))
						{	
							//TEST DE LA PRESENCE DE DONNEES DANS L ARRAY $data;
							/*echo '<pre>';
							print_r ($data);
							echo '<pre>';*/
?>
<form method="post" name="r_famille" action="mod_famille.php">

<table width="90%" align="center">

							
	<tr>
    	<td>
        <input type="hidden" name="id_famille" value="<?php echo $data['id_famille']; ?>">
        Nom du chef de famille</td><td>
        <select name="nom" action="">
        <option></option> 
		<?php			
						echo '<option  value="'.$data['id_famille'].'">'.$data['nom'].'</option>';
		?>
		</select> 
    	</td>
        <td>
        Prénom</td><td>
        <select name="prenom" action=""> 
        <option></option>
        <?php			
						
						echo '<option value="'.$data['id_famille'].'">'.$data['prenom'].'</option>';
						
		
							?>
						
		 
		</select> </td>
Bien sûr c'est juste une petite partie. Les autres listes n'affichent aucune donnée...

Merci pour tout

PS voici une copie écran du résultat dans le navigateur .... beurk !! Image

Re: Multiple affichage déroulant

Posté : 23 févr. 2013, 16:36
par moogli
salut,


effectivement ton code fait ce que tu décris ;)

ton code créer autant de formulaire et de select que de ligne.

je te conseil de stocker les infos dans deux tableaux et ensuite d'afficher les select. dans tous les cas tu ne doit pas mettre la balise <select> dans la boucle.

par exemple
<?php
 while ($data=mysql_fetch_assoc($res)){       
$prenom[] = $data['prenom'];
$nom[] = $data['nom'];
}
echo '<select ... >';
foreach($prenom as $p) {
echo '<option>'.$p.'</option>';
}
echo '</select>';
// idem pour le reste. 
?>
tu peux aussi simplement mettre ça dans des variables et les afficher au bon endroit ensuite.


@+

Re: Multiple affichage déroulant

Posté : 23 févr. 2013, 16:57
par Samuel6790
Ok, Merci beaucoup.... super rapide en plus....
je teste et je te dis quoi

Encore merci..

Re: Multiple affichage déroulant

Posté : 23 févr. 2013, 17:47
par Samuel6790
Voilà.....
j'ai mis un foreach à chaque liste déroulante en me basant sur les arrays $nom[] et ça marche super....

Il me reste plus qu'à creuser ma requête pour que les paramètres n'apparaissent qu'une seule fois dans chaque liste (même ville par ex...)
Merci encore de ton efficacité... :wink: