[PHP/MySQL] - Menu déroulant SQL 2 champs
olive33
-
3 déc. 2006 à 19:45
Olive33 -
Olive33 -
Bonjour,
Voilà, je vous explique brièvement mon problème. Je possède une table MySQL qui contient 2 champs nommés "idcommande" et "datecom". Je voudrais faire un SELECT et réunir ces deux champs dans un menu déroulant. J'ai donc, ce sera plus parlant pour certains, ce type de script :
$quer2 = "SELECT datecom FROM $table1 WHERE numclient='$numclient'";
$resul2 = mysql_query($quer2);
$ligne2 = mysql_num_rows($resul2);
$champ2 = mysql_num_fields($resul2);
$quer = "SELECT idcommande FROM $table1 WHERE numclient='$numclient'";
$resul = mysql_query($quer);
$ligne = mysql_num_rows($resul);
$champ = mysql_num_fields($resul);
echo "<select name='numcom1'>";
while($row = $fields = mysql_fetch_row($resul)){
$i=0;
while ($i<$champ){
echo "<option value='$row[$i]'>$row[$i]";
$i++;
}
while($row2 = mysql_fetch_row($resul2)){
$k=0;
while ($k<$champ2){
echo " du $row2[$k]";
$k++;
}
echo "</option>";
}
}
Ce qui me donne pour résultat, pour la première ligne du menu déroulant, le contenu de mon premier champ et celui de mon second champ tel que je le souhaite (par contre il est normal que seul la valeur du premier champ soit transmise par le formulaire, c'est voulu) mais dès la seconde ligne, je n'ai que la valeur du premier champ qui est récupérée.
Je me suis donc planté quelque part, soit dans la position de mes accolades, des "echo" ou des variables $i et $k. Mais j'ai beau tourner le code dans tous les sens, je n'y arrive pas.
Quelqu'un saurait m'aider ?
Merci par avance
A+ Olive33
Voilà, je vous explique brièvement mon problème. Je possède une table MySQL qui contient 2 champs nommés "idcommande" et "datecom". Je voudrais faire un SELECT et réunir ces deux champs dans un menu déroulant. J'ai donc, ce sera plus parlant pour certains, ce type de script :
$quer2 = "SELECT datecom FROM $table1 WHERE numclient='$numclient'";
$resul2 = mysql_query($quer2);
$ligne2 = mysql_num_rows($resul2);
$champ2 = mysql_num_fields($resul2);
$quer = "SELECT idcommande FROM $table1 WHERE numclient='$numclient'";
$resul = mysql_query($quer);
$ligne = mysql_num_rows($resul);
$champ = mysql_num_fields($resul);
echo "<select name='numcom1'>";
while($row = $fields = mysql_fetch_row($resul)){
$i=0;
while ($i<$champ){
echo "<option value='$row[$i]'>$row[$i]";
$i++;
}
while($row2 = mysql_fetch_row($resul2)){
$k=0;
while ($k<$champ2){
echo " du $row2[$k]";
$k++;
}
echo "</option>";
}
}
Ce qui me donne pour résultat, pour la première ligne du menu déroulant, le contenu de mon premier champ et celui de mon second champ tel que je le souhaite (par contre il est normal que seul la valeur du premier champ soit transmise par le formulaire, c'est voulu) mais dès la seconde ligne, je n'ai que la valeur du premier champ qui est récupérée.
Je me suis donc planté quelque part, soit dans la position de mes accolades, des "echo" ou des variables $i et $k. Mais j'ai beau tourner le code dans tous les sens, je n'y arrive pas.
Quelqu'un saurait m'aider ?
Merci par avance
A+ Olive33
A voir également:
- [PHP/MySQL] - Menu déroulant SQL 2 champs
- Menu déroulant excel - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Canon quick menu - Télécharger - Utilitaires
2 réponses
P@
Messages postés
1709
Date d'inscription
vendredi 7 juillet 2000
Statut
Membre
Dernière intervention
24 mars 2009
185
4 déc. 2006 à 12:11
4 déc. 2006 à 12:11
juste une question tu as regardé le html généré ???
pour moi, le souci vient de tes boucles while moi, je l'aurais plus vu comme suis
pour moi, le souci vient de tes boucles while moi, je l'aurais plus vu comme suis
while($row = $fields = mysql_fetch_row($resul)){ $i=0; while ($i<$champ){ echo "<option value='$row[$i]'>$row[$i]"; while($row2 = mysql_fetch_row($resul2)){ $k=0; while ($k<$champ2){ echo " du $row2[$k]"; $k++; } echo "</option>"; $i++; } }}
Bonsoir,
Et d'abord merci pour ton aide. Malheureusement le code ne fonctionne pas avec le code tel que tu l'as écrit. Par contre voici le code HTML généré (merci je n'y avais pas pensé) :
<form name='form2' method='post' action='?do=affichage'>
<select name='numcom1'>
<option value='0611hmF19qYb'>0611hmF19qYb du 19-11-2006</option> du 03-12-2006</option>
<option value='0612yLg2YkGm'>0612yLg2YkGm</select><input type='hidden' name='numclient' value='0000-00000A'>
<input type='submit' name='Submit3' value='Visualiser' class='b'>
</form>
A première vue y'a une balise </option> de trop juste avant la date du 03-12-2006. Date qui elle -même mal placée car elle devrait être placée juste avant la balise de fermeture du </select> et il en va de même pour </option>
En clair l'idéal serait d'obtenir ceci :
<form name='form2' method='post' action='?do=affichage'>
<select name='numcom1'>
<option value='0611hmF19qYb'>0611hmF19qYb du 19-11-2006</option>
<option value='0612yLg2YkGm'>0612yLg2YkGm du 03-12-2006</option></select><input type='hidden' name='numclient' value='0000-00000A'>
<input type='submit' name='Submit3' value='Visualiser' class='b'>
</form>
Reste à savoir comment, je sens que je suis pas loin mais je trouve pas...
A+ Olive33
Et d'abord merci pour ton aide. Malheureusement le code ne fonctionne pas avec le code tel que tu l'as écrit. Par contre voici le code HTML généré (merci je n'y avais pas pensé) :
<form name='form2' method='post' action='?do=affichage'>
<select name='numcom1'>
<option value='0611hmF19qYb'>0611hmF19qYb du 19-11-2006</option> du 03-12-2006</option>
<option value='0612yLg2YkGm'>0612yLg2YkGm</select><input type='hidden' name='numclient' value='0000-00000A'>
<input type='submit' name='Submit3' value='Visualiser' class='b'>
</form>
A première vue y'a une balise </option> de trop juste avant la date du 03-12-2006. Date qui elle -même mal placée car elle devrait être placée juste avant la balise de fermeture du </select> et il en va de même pour </option>
En clair l'idéal serait d'obtenir ceci :
<form name='form2' method='post' action='?do=affichage'>
<select name='numcom1'>
<option value='0611hmF19qYb'>0611hmF19qYb du 19-11-2006</option>
<option value='0612yLg2YkGm'>0612yLg2YkGm du 03-12-2006</option></select><input type='hidden' name='numclient' value='0000-00000A'>
<input type='submit' name='Submit3' value='Visualiser' class='b'>
</form>
Reste à savoir comment, je sens que je suis pas loin mais je trouve pas...
A+ Olive33