PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 07-07-2009 09:42:04

rafale69300
Membre
Inscription : 07-07-2009
Messages : 1

Fermeture de sessions

Bonjour tout le monde,
J'ai un petit problème, je n'arrive pas à placer mon unset($_SESSION['choix']);dans ma page car je la détruit trop tôt donc si quelqu'un pouvait m'aider merci d'avance.


<p><!--Formulaire-->

   
<form name="formulaire" action="./index.php?page=test&categorie=search" method="post" id="site">
</p>
<p align="center"><?php $requete='SELECT id_site,lib_site FROM sites order by lib_site';
      $resultat= mysql_query($requete);?>
   <select name="choix" onChange="document.forms['site'].submit();">
    <option value="0">Choisissez un site</option>
      <?php
        while ($donnees = mysql_fetch_array($resultat)){
                echo '<option value='.$donnees[0].'>';
              echo $donnees[1];
        echo'</option>';
          }
      ?>
  </select>  </form>
<?php
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
if(isset($_POST['choix']))
 $_SESSION['choix'] = $_POST['choix'] ;{
 if(isset($_SESSION['choix'])){
$sql = 'SELECT count(*) FROM batiments where id_site = '.$_SESSION['choix'].' ';  
 
// on exécute cette requête  
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
 
// on récupère le nombre d'éléments à afficher  
$nb_total = mysql_fetch_array($resultat);  
 
// on teste si ce nombre de vaut pas 0  
if (($nb_total = $nb_total[0]) == 0) {  ?>
<div> Aucune réponse </div> <?php
}  
else { ?>
  <p align="center">
<p align="center">
<p align="center">
<?php if(isset($_POST['choix']))
   $_SESSION['choix'] = $_POST['choix'] ;{
  $requete2="SELECT lib_site FROM sites
      WHERE id_site ='"
.$_SESSION['choix']."'
      "
;
  $resultat2=mysql_query($requete2);
while ($donnees2 = mysql_fetch_array($resultat2)){
?>

Voici tous les bâtiments du site suivant : <strong><?php echo $donnees2['lib_site'];?></strong><br><br>Pour plus d'informations sur un bâtiment, cliquez sur son nom.<br><br><?php }

   echo '<div align="center"><table width="500px" border="1" align="center">
    <tr>
      <td><div align="center"><strong>Code Bâtiment</strong></div></td>
        <td><div align="center"><strong>Nom Bâtiment</strong></div></td>
        <td><div align="center"><strong>Nb Etage Bâtiment</strong></div></td>
         <td><div align="center"><strong>Fonction Bâtiment</strong></div></td>
      </tr>'
;
   
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0  
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
   
   $nb_affichage_par_page = 1;
   
// Préparation de la requête avec le LIMIT  
$sql = 'SELECT code_bat, nom_bat, nbEtage_bat, fct_bat, id_bat, lib_site FROM batiments B, sites S
 WHERE B.id_site='
.$_SESSION['choix'].'
 AND S.id_site = B.id_site
 ORDER BY code_bat ASC LIMIT '
.$_GET['debut'].','.$nb_affichage_par_page;
 
 
// on exécute la requête  
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
 
// on va scanner tous les tuples un par un  
while ($data = mysql_fetch_array($req)) {  
// on affiches les résultats dans la <table> ?>
 <tr><td><div align="center"><?php echo $data['code_bat'];?></div></td><td><div align="center"><?php
  echo '<a href="./index.php?page=info_bat&categorie=batiment&choix='.$data['id_bat'].'">'.$data['nom_bat'].'</a>';?></div></td><td><div align="center"><?php
  echo $data['nbEtage_bat'];?></div></td><td><div align="center"><?php
  echo $data['fct_bat'];?></div></td></tr><?php
}  
 
// on libère l'espace mémoire alloué pour cette requête  
mysql_free_result ($req);
   echo '</table><br />';
 
   // on affiche enfin notre barre
   echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 1).'</span>';
 
}  
// on libère l'espace mémoire alloué pour cette requête  
mysql_free_result ($resultat);  
 
echo '</table><br />';  
}
?>
</p></div>
<?php }
}
?>
</p></p>
 

Hors ligne

#2 07-07-2009 16:48:57

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Fermeture de sessions

Quel est l'intérêt de stocker tes variables de formulaire dans une variable de session si c'est pour les supprimer plus loin ?
Utilises des variables locales...

Hors ligne

Pied de page des forums