le 19/06/2009 à 12:10
rafale69300
bonjour tout le monde,
Ma page permet de sélectionner dans la 1ère liste un bâtiment et sa salle en fonction de ce choix dans la 2ème liste il y a les portes de cette salle, après l'avoir sélectionnée je voudrais afficher ces informations pour cela je dois récupérer la valeur de ma 2ème liste, je pense le faire correctement mais malheureusement non puisque j'ai un problème de fetch array donc ma requête doit être fausse.
Je vous laisse mon code, c'est vers la ligne 124 qu'il y a le problème du fetch array.
Ma page permet de sélectionner dans la 1ère liste un bâtiment et sa salle en fonction de ce choix dans la 2ème liste il y a les portes de cette salle, après l'avoir sélectionnée je voudrais afficher ces informations pour cela je dois récupérer la valeur de ma 2ème liste, je pense le faire correctement mais malheureusement non puisque j'ai un problème de fetch array donc ma requête doit être fausse.
Je vous laisse mon code, c'est vers la ligne 124 qu'il y a le problème du fetch array.
<?php
/* On récupère si elle existe la valeur du batiment envoyée par le formulaire */
$idr = isset($_POST['salle'])?$_POST['salle']:null;
if(isset($_POST['ok']) && isset($_POST['porte']) && $_POST['porte'] != "")
{
$salle_selectionnee = $_POST['salle'];
$porte_selectionne = $_POST['porte'];
}
?>
<?php
$sql1 = "SELECT B.id_bat,nom_bat,id_salle,lib_salle FROM batiments B,salles S WHERE B.id_bat = S.id_bat order by nom_bat";
$rech_salle = mysql_query($sql1);
$code_salle = array();
$nom_salle = array();
$nom_bat = array();
/* On active un compteur pour les batiments */
$nb_salle = 0;
if($rech_salle != false)
{
while($ligne = mysql_fetch_assoc($rech_salle))
{
array_push($code_salle, $ligne['id_salle']);
array_push($nom_salle, $ligne['lib_salle']);
array_push($nom_bat, $ligne['nom_bat']);
/* On incrémente de compteur */
$nb_salle++;
}
}
?>
<style type="text/css">
<!--
.taille {font-size: x-small}
-->
</style>
<p align="center"><strong>Informations sur une porte de la commune :</strong></p>
<p> </p>
<p class="taille">Sélectionnez un bâtiment et une salle dans la 1ère liste déroulante puis dans la 2ème liste déroulante sélectionnez une porte et vous aurez accès à toutes ces informations</p>
<form name="formulaire" action="./index.php?page=info_porte&categorie=porte" method="post" id="chgsalle">
<?php
mysql_free_result($rech_salle);
/* On commence par vérifier si on a envoyé un numéro de batiment et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les salles de ce batiment */
$sql2 = "SELECT `id_porte`, `lib_porte`".
" FROM `portes`".
" WHERE `id_salle` = ". $idr ."".
" ORDER BY `id_porte`;";
$rech_porte = mysql_query($sql2);
/* Un petit compteur pour les salles */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des salles */
$code_porte = array();
$nom_porte = array();
/* On va mettre les numéros et noms des salles dans les deux tableaux */
while($ligne_porte = mysql_fetch_assoc($rech_porte))
{
array_push($code_porte, $ligne_porte['id_porte']);
array_push($nom_porte, $ligne_porte['lib_porte']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
}
?>
<table width="50%" border="0">
<tr>
<td width="45%"><p>Bâtiment & Salle<span class="Etoile"></span> :</p>
<p>
<select name="salle" id="salle" onchange="document.forms['chgsalle'].submit();">
<option value="-1">Choisissez un batiment & salle</option>
<?php
for($i = 0; $i < $nb_salle; $i++)
{
?>
<option value="<?php echo($code_salle[$i]); ?>"<?php echo((isset($idr) && $idr == $code_salle[$i])?" selected=\"selected\"":null); ?>><?php echo($nom_bat[$i]." - ".$nom_salle[$i]); ?></option>
<?php
}
?>
</select>
</p></td></tr><tr>
<td width="55%"><p>Porte<span class="Etoile"></span> :</p>
<p><select name="porte" id="porte">
<option value="-1">Choisissez une porte</option>
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_porte[$d]); ?>"<?php echo((isset($porte_selectionne) && $porte_selectionne == $code_porte[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_porte[$d]." "); ?></option>
<?php
}
?>
</select>
</p></td>
</tr></table>
<?php
if(isset($_POST['porte'])){
$requete="SELECT code_porte,lib_porte,lib_salle,S.id_salle FROM portes P,salles S
WHERE S.id_salle='".$_POST['porte']."'
AND P.id_salle = S.id_salle";
$resultat=mysql_query($requete);}
else{
if(isset($_GET['porte'])){
$requete="SELECT code_porte,lib_porte,lib_salle,S.id_salle FROM portes P,salles S
WHERE S.id_salle='".$_GET['porte']."'
AND P.id_salle = S.id_salle";
$resultat=mysql_query($requete);}
}
while($donnees = mysql_fetch_array($resultat)){
?>
<p align="center">
<p align="center">
<p align="center">
<p><strong>Code de la Porte :</strong> <?php echo $donnees[0];?></p><br />
<p><strong>Libéllé de la Porte :</strong> <?php echo $donnees[1];?></p><br />
<p><strong>Salle de la Porte :</strong> <?php echo '<a href="./index.php?page=info_salle&categorie=salle&choix='.$donnees[3].'">'.$donnees[2].'</a>';?></p><br />
<?php
}
?>