Probleme menu deroulant PHP mysql !!!!Help please!!!!

cs_M_B Messages postés 7 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 26 novembre 2004 - 25 nov. 2004 à 15:46
stiml Messages postés 132 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 18 juin 2009 - 9 mars 2006 à 15:02
Salut à tous

J'ai deja posé mon probleme dans le theme Base de données, mais n'ayant pas de solution j'aurai peut etre plus de chance ici...

J'ai un probleme pour recuperer des données de ma base mysql dans un menu deroulant, au lieu de me mettre les données les unes en dessous des autres ca m'affiche toutes les données sur une ligne et ca repete toutes les données à chaque ligne....
les données(mysql) sont dans un champs de type SET...
Comment corriger ca ???????????

Ma table s'appelle produit la colonne taille et les données sont multiples dans un champs de type SET....
le but étant que pour chacun de mes produit s'affiche sur la page un menu deroulant avec les tailles disponibles pour le produit...

Merci de me sortir de la......

Taille :
<select class="formulaire1" name="taille">
<?php

$sql = "SELECT tailles FROM produits ORDER BY tailles DESC";

$result = mysql_query($sql);

echo "<option value="" .$ligne['tailles']."">".$ligne['tailles']."</option>";

?>
</select>

3 réponses

mixo11 Messages postés 20 Date d'inscription samedi 20 novembre 2004 Statut Membre Dernière intervention 28 janvier 2005
26 nov. 2004 à 14:05
c'est normal, $result te renvoi un array , faut d'abord le convertir en tableau et ensuite travailler sur le tableau dans une boucle for
genre le code suivant :

-----------------------------------
//on recupere les données de la requete dans un tableau
while($data = mysql_fetch_assoc($result))
{
$tablo[]=$data; //--- mettre les données dans un tableau
}

//nombre de lignes résultats :
$nb=count($tablo);

//biouvle sur toutes les lignes :
for ($i=0;$i<$nb;$i++)
{
echo "<option value="" .$tablo[$i]['tailles']."">".$tablo[$i]['tailles']."</option>";

}

---------------------------------------------------

voila je pense que tu auras ce que tu voudras .
0
cs_M_B Messages postés 7 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 26 novembre 2004
26 nov. 2004 à 19:17
Salut mixo 11

Merci de prendre un peu de ton temps mais ton code ne marche pas...
Pour mon test j'ai 4 produits dont seul le dernier à des données de tailles (36, 38)

Avec ton code j'obtient :
dans le menu deroulant du 1er produit 4 lignes dont 3 vides et la derniere avec 36,38, (alors qu'il ne devrait rien n'y avoir)

dans le menu deroulant du 2eme produit 8 lignes dont 3 vides et ensuite 36,38, puis encore 3 vides et ensuite 36,38(alors qu'il ne devrait rien n'y avoir)

Pour le 3eme produit 12 lignes 3 vides 1 36,38 3vides 1 36,38...
Pour le 4eme produit 16 lignes 3 vides 1 36,38 3vides 1 36,38...

Si jamais t'as encore envie de reflechir un peu je te donne quelques infos qui peuvent t'aider (enfin je crois) : les données sont de type SET dans un champ (faut il les mettre de type SET???) et il ya 1 variable $ligne qui sert à definir sur quelle ligne il faut prendre les données dans la base.... ne faudrait-il pas que cette variable apparaisse dans le code????
Enfin pour info avec le code que j'ai mis dans mon premier post, il y a pas de données dans les menu deroulants des 3 premiers produits mais il y a 36,38 sur la meme ligne dans le menu deroulants du 4 produits.... et depuis quelques jours je reve qu'ils soient les uns en dessous des autres.....

Au secours je deviens fou....M_B
0
stiml Messages postés 132 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 18 juin 2009
9 mars 2006 à 15:02
voici un code qui pourra peut etre t'aider à toi de l'adapter:

<select name="Service" id="Service">
<?php
do {
?>
<option value="<?php echo $row_rsService['CODESERV']?>"><?php echo $row_rsService['CODESERV']?></option>
<?php
} while ($row_rsService = mysql_fetch_assoc($rsService));
$rows = mysql_num_rows($rsService);
if($rows > 0) {
mysql_data_seek($rsService, 0);
$row_rsService = mysql_fetch_assoc($rsService);
}
?>
</select>



--------------------
StimL.
0
Rejoignez-nous