Comment faire une liste déroulante avec deux critères???

Résolu
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009 - 28 févr. 2006 à 14:55
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 - 1 mars 2006 à 13:52
j'ai une table qui s'appelle labo, voilà comment elle se présente en mysql:
Labo(IdentLabo, Nbre_de_postes, Batiment, NumSalle)

je voudrais qu'il m'affiche les salles que j'ai réservé avec la métode distinct, il marche pour un seul critère mais pas deux. voilà mon programme. aider moi svp. merci de m'indiquer comment faire pour afficher le reste de la table dans une autre page.

<html>

<?php
$user="root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$rq = "SELECT DISTINCT Batiment, NumSalle FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action='traitement.php' method='post'>
<select name='Batiment'>\n";
<select name='NumSalle'>\n";

while ($ligne = mysql_fetch_array($result))
{ extract($ligne);
if ($Batiment<>"")
echo "<option value='$Batiment'>$Batiment\n";
extract($ligne);
if ($NumSalle<>"")
echo "<option value='$NumSalle'>$NumSalle\n";
}
echo "</select>\n";
echo "</form>\n";?>

</html>

21 réponses

morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
1 mars 2006 à 12:45
RESULTAT

reservationsalle.php
<html>

<?php
$user= "root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$rq = "SELECT Batiment,NumSalle FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action='traitement.php' method='post'>
<select name='Batiment_Salle'>\n";

while ($ligne = mysql_fetch_array($result))
{
$valeur=$ligne['Batiment'].'/'.$ligne['NumSalle'];
echo "<option value='".$valeur."'>".$valeur."</option>\n";
}
echo "</select>\n";
echo "</form>\n";?>

</html>
----------------------------------------------------------------------------------------------------------------------------------------------------------
traitement.php

<html>

<?php
//Connexion au serveur
if(!$conn= mysql_connect("Localhost","root","")) { echo ("Prob connexion au serveur"); exit();}
//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db) { echo ("Problème de connexion à la base"); exit(); }

//structure du tableau
echo "IDENTIFICATION DE LA SALLE

";
echo "

";
echo "";
echo("\");
echo(\"----
Identification de la salle |
Nombre de postes |
Batiment |
Numéro de la salle |\");
$var =explode('/',$_POST['Batiment_Salle']);
//(où Batiment_Salle est le name du select)
$batiment=$var[0];
$salle=$var[1];
$req=\"select * from labo where Batiment='$batiment' and NumSalle='$salle'\";
//( si tu fais ici echo $req; verifie ce qu'il ya dans la chaine)
$result=mysql_query($req, $conn);
//Recupération des résultats
while($lig=mysql_fetch_array($result))
{
echo (\"$lig[0], \");
echo (\"$lig[1], \");
echo (\"$lig[2], \");
echo (\"$lig[3], \");
}//Déconnexion de la base de données
mysql_close($conn);
echo("
");
echo "

";
?>

</html>

Voila maintenant ca s'affiche correctement!!!
3
cs_Shisui Messages postés 34 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 17 janvier 2007
28 févr. 2006 à 15:00
Si tu fais deux requétes myql ca serait plus pratique, parceque deux select imbriqués en (x)html ca existe pas :)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 févr. 2006 à 15:06
Effectivement, c'est original... ;-)

Il a raison: tu dois faire deux listes, mais non imbriquées.
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
28 févr. 2006 à 15:10
je veux choisir le batiment et la salle afin d'avoir toutes les autres informations
merci de me proposer la solution au programme.
0

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

Posez votre question
cs_Shisui Messages postés 34 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 17 janvier 2007
28 févr. 2006 à 15:13
par exemple ça, en reprenant ton code :
<html>

<?php
$user="root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$rq = "SELECT DISTINCT Batiment FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action='traitement.php' method='post'>
<select name='Batiment'>\n";

while ($ligne = mysql_fetch_array($result))
{
if ($ligne['Batiment'] <>"")
echo "<option value='
".$ligne['Batiment']."
'>".
$ligne['Batiment']."
\n";
}
echo "</select>\n";

$rq = "SELECT DISTINCT NumSalle FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action='traitement.php' method='post'>
<select name='NumSalle'>\n";

while ($ligne = mysql_fetch_array($result))
{
if ($ligne['NumSalle'] <>"")
echo "<option value='
".$ligne['
NumSalle
']."
'>".
$ligne['
NumSalle
']."
\n";
}
echo "</select>\n";

echo "</form>\n";?>

</html>
0
cs_Shisui Messages postés 34 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 17 janvier 2007
28 févr. 2006 à 15:15
Oups, deux formulaires par contre ça sert à rien, voilà :

<html>

<?php
$user="root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$rq = "SELECT DISTINCT Batiment FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action='traitement.php' method='post'>
<select name='Batiment'>\n";

while ($ligne = mysql_fetch_array($result))
{
if ($ligne['Batiment'] <>"")
echo "<option value='
".$ligne['Batiment']."
'>".
$ligne['Batiment']."
\n";
}
echo "</select>\n";

$rq = "SELECT DISTINCT NumSalle FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<select name='NumSalle'>\n";

while ($ligne = mysql_fetch_array($result))
{
if ($ligne['NumSalle'] <>"")
echo "<option value='
".$ligne['
NumSalle
']."
'>".
$ligne['
NumSalle
']."
\n";
}
echo "</select>\n";

echo "</form>\n";?>

</html>

Par contre faut savoir si les NumSalle différent en fonction de Batiment, auquel cas faudrait modifier un peu.
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
28 févr. 2006 à 15:36
ben il y a aussi ce probleme là que je viens d'y penser tout a l'heure
comment faire si la salle n'existe pas dans un batiment???
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
28 févr. 2006 à 15:42
pourquoi deux listes ?
$rq = "SELECT Batiment,Numsalle FROM labo ORDER BY Batiment, NumSalle";
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
28 févr. 2006 à 15:55
<html>

<?php
$user= "root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$rq = "SELECT Batiment,NumSalle FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action= 'traitement.php' method='post'>
<select name= 'Batiment_Salle' >\n";

while ($ligne = mysql_fetch_array($result))
{
$valeur=$ligne['Batiment'].'/'.$ligne['NumSalle'];
echo "<option value='".$valeur." '>".$valeur."</option>\n";
}
echo "</select>\n";

echo "</form>\n";?>

</html>

et dans ton traitement.php
tu fais un explode de $_POST avec ' / ' et tu recuperes les deux valeurs pour construire ta requete
moi je ferais comme ça (mais encore une fois je ne ferais qu'une page en 2 parties
1- affichage selection
2- affichage des données d'apres la selection
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
28 févr. 2006 à 17:01
le programme reconnait bien mais je sais pas trop comment afficher tous les résultats maintenant dans une autre page grace a ces renseignements.
comment y procéder?
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
28 févr. 2006 à 17:45
affichage des données d'apres la selection (traitement.php)

<html>

<?php
//Connexion au serveur
if(!$conn= mysql_connect("Localhost","root","")) { echo ("Prob connexion au serveur"); exit();}
//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db) { echo ("Problème de connexion à la base"); exit(); }
$var=explode('/',$_POST[''Batiment_Salle]);
//(où Batiment_Salle est le name du select)
$batiment=$var[0];
$salle=$var[1];
$req="select * form labo where Batiment='$batiment' and NumSalle='$salle'";
$result=mysql_query($req, $conn);
//Recupération des résultats
while($row = mysql_fetch-row($result)){
....

---> Au secours !!!
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
1 mars 2006 à 00:52
...

$req="select * form labo where Batiment='$batiment' and NumSalle='$salle'";

//( si tu fais ici echo $req; verifie ce qu'il ya dans la chaine)

$result=mysql_query($req, $conn);

//Recupération des résultats

while($lig = mysql_fetch_array($result))

{



echo $lig[0];

echo $lig[1];

echo $lig[2];

echo $lig[3];



}//Déconnexion de la base de données

mysql_close($conn);



?>
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
1 mars 2006 à 09:55
voila le prog mais toujours le meme probleme au niveau while

<html>

<?php
//Connexion au serveur
if(!$conn= mysql_connect("Localhost","root","")) { echo ("Prob connexion au serveur"); exit();}
//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db) { echo ("Problème de connexion à la base"); exit(); }

//structure du tableau
echo "IDENTIFICATION DE LA SALLE";
echo "
";
echo("<table>");
echo("<tr><th>Identification de la salle</th>
<th>Nombre de postes</th>
<th>Batiment</th>
<th>Numéro de la salle</th></tr>");
$var=explode('/',$_POST['Batiment_Salle']);
//(où Batiment_Salle est le name du select)
$batiment=$var[0];
$salle=$var[1];
$req="select * form labo where Batiment='$batiment' and NumSalle='$salle'";
//( si tu fais ici echo $req; verifie ce qu'il ya dans la chaine)
$result=mysql_query($req, $conn);
//Recupération des résultats
while($lig = mysql_fetch_array($result))
{

echo $lig[0];
echo $lig[1];
echo $lig[2];
echo $lig[3];

}//Déconnexion de la base de données
mysql_close($conn);

?>

</html>
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
1 mars 2006 à 09:56
voila ce qui m'affiche comme résultat

DENTIFICATION DE LA SALLE


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\program files\easyphp1-8\www\site internet\reservation\traitement.php on line 26


Identification de la salle |
Nombre de postes |
Batiment |
Numéro de la salle |
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
1 mars 2006 à 09:59
$req="select * form labo where Batiment='$batiment' and NumSalle='$salle'";
echo $req;

ça dit quoi ?
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
1 mars 2006 à 10:09
lol


IDENTIFICATION DE LA SALLE
select * form labo where Batiment='c' and NumSalle='105 '
Identification de la salle |
Nombre de postes |
Batiment |
Numéro de la salle |
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
1 mars 2006 à 10:22
la première partie c'était ca:

reservationsalle.php
<html>

<?php
$user="root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$rq = "SELECT Batiment,NumSalle FROM labo ORDER BY Batiment, NumSalle";
$result = mysql_query($rq) or die ("Exécution de la requête impossible");

//création d'un formulaire contenant une liste de sélection
echo "<form action='traitement.php' method='post'>
<select name='Batiment_Salle'>\n";

while ($ligne = mysql_fetch_array($result))
{
$valeur=$ligne['Batiment'].'/'.$ligne['NumSalle'];
echo "<option value='".$valeur." '>".$valeur."</option>\n";
}
echo "</select>\n";
echo "</form>\n";?>

</html>

A partir de cette requete, afficher toutes les informations

traitement.php
<html>

<?php
//Connexion au serveur
if(!$conn= mysql_connect("Localhost","root","")) { echo ("Prob connexion au serveur"); exit();}
//Connexion a la base de données
$db= mysql_select_db("gestion_laboratoire");
if(!$db) { echo ("Problème de connexion à la base"); exit(); }

//structure du tableau
echo "IDENTIFICATION DE LA SALLE";
echo "
";
echo("<table>");
echo("<tr><th>Identification de la salle</th>
<th>Nombre de postes</th>
<th>Batiment</th>
<th>Numéro de la salle</th></tr>");
$var=explode('/',$_POST['Batiment_Salle']);
//(où Batiment_Salle est le name du select)
$batiment=$var[0];
$salle=$var[1];
$req="select * form labo where Batiment='$batiment' and NumSalle='$salle'";
//( si tu fais ici echo $req; verifie ce qu'il ya dans la chaine)
$result=mysql_query($req, $conn);
//Recupération des résultats
while($lig = mysql_fetch_array($result))
{

echo $lig[0];
echo $lig[1];
echo $lig[2];
echo $lig[3];

}//Déconnexion de la base de données
mysql_close($conn);

?>

</html>

mais je ne sais pas pourquoi il ne veut pas marcher et m'indique le problème (voir-ci dessus) avec while
[Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...]
0
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009
1 mars 2006 à 10:29
erreur trouver, ce n'est pas select * form mais select * FROM
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
1 mars 2006 à 10:35
select * form labo where Batiment= 'c' and NumSalle= '105 '

il ya un caractere blanc apres 105

echo "<option value ='".$valeur." '>".$valeur."</option>\n";

peut etre à cause de '".$valeur." ' --> supprime l'espace ici


echo "<option value='".$valeur."'>".$valeur."</option>\n";
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
1 mars 2006 à 10:36
select * form
--> pas mal !!
0
Rejoignez-nous