IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Conserver une variable sur plusieurs pages


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Conserver une variable sur plusieurs pages
    Bonjour à tous.
    Meilleurs voeux informatiques pour cette nouvelle année.

    Mon problème est le suivant:
    Un utilisateur réalise la selection d'un nom au travers d'une liste de sélection.
    Par la méthode POST, son choix est permet dans une autre feuille php de sélectionner des données dans une base.
    Si je demande que les données sélectionnées s'affichent sur une feuille, cela fonctionne parfaitement.
    mais je souhaite en fait n'afficher que 10 résultats par feuille. Donc mon script crée les liens 1, 2, 3, ....etc
    Hors si je clique sur le lien 2 ou 3 les pages sont vides.
    J'essaye de retourner le problème dans tous les sens, mais je ne trouve pas tout seul....

    Pouvez vous m'aider ?

    Merci.

    Voici le code qui pose problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    <?php @session_start();
    ?> 
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
             <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
                <head>
                    <title>Mon super site</title>
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    				<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="design.css" />
                </head>
     
                <body><body background="fond.png">
     
                  <!-- L'en-tête -->
                 <div id="en_tete">
                   </div>
                   <!-- Les menus -->
                     <div id="menu">        
                      <div class="element_menu">
                        <h3>Titre menu</h3>
                          <ul>
                              <li><a href="page1.html">Lien</a></li>
                              <li><a href="page2.html">Lien</a></li>
                               <li><a href="page3.html">Lien</a></li>
                           </ul>
                       </div>
     
                      <div class="element_menu">
                           <h3>Titre menu</h3>
                           <ul>
                              <li><a href="page4.html">Lien</a></li>
                               <li><a href="page5.html">Lien</a></li>
                               <li><a href="page6.html">Lien</a></li>
                           </ul>
                       </div>        
                   </div>
     
                   <!-- Le corps -->
     
                   <div id="corps">
                       <h1>Travail réalisé</h1>
     
    				<div id="table"
     
    				<p class="pages">
     
     
     <?php 
      session_start();
      include 'conect.inc';
     $connection = mysql_connect($host,$user,$password)
           or die ("couldn't connect to server");
      $db = mysql_select_db($database,$connection)
           or die ("Couldn't select database");    
     
     $_SESSION['Nom'] = $_POST['Nom'];	 
     
    //$donnees = mysql_query ("SELECT * FROM fiche_travail ");
     
     
     
    // On met dans une variable le nombre de messages qu'on veut par page
     
    $nombreDeMessagesParPage = 10; // Essayez de changer ce nombre pour voir :o)
     
    // On récupère le nombre total de messages
     
    $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM fiche_travail WHERE Nom_trav = '{$_SESSION['Nom']}'");
     
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
     
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
     session_start();
     
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="testliste.php?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
     
    </p>
     <?php session_start();
     
     
     
    // --------------- Etape 3 ---------------
    // Maintenant, on va afficher les messages
    // ---------------------------------------
     
    if (isset($_GET['page']))
    {
            $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
            $page = 1; // On se met sur la page 1 (par défaut)
    }
    echo "<input type='hidden' id='ID' name='ID' value='".$_POST['Nom']."' />";
     
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     $donnees = mysql_query("SELECT * FROM fiche_travail where Nom_trav = '{$_SESSION['Nom']}' ORDER BY Id_travail DESC  LIMIT "
     . $premierMessageAafficher . "," . $nombreDeMessagesParPage);
     
    {
     
          echo '<p align="center"><table bgcolor="#FFFFFF" border="4" cellpadding="4" cellspacing="2"></p>'."\n";
     
               echo '<tr>';
              echo '<td bgcolor="#006498"><font color="white"><b><u>Id_travail</u></b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Nom_trav</u></b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Date_deb</b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Heure_deb</u></b></font></td>' ;
               echo '<td bgcolor="#006498"><font color="white"><b><u>Heure_fin</u></b></font></td>' ;
    		   echo '<td bgcolor="#006498"><font color="white"><b><u>     </u></b></font></td>';
               echo '<td bgcolor="#006498"><font color="white"><b><u>Bureau_trav</u></b></font></td>' ;
               echo '<td bgcolor="#006498"><font color="white"><b><u>Domaine_trav</u></b></font></td>' ;
     
               echo '</tr>'."\n";
     
     
           while($row = mysql_fetch_array($donnees)){
     
               echo '<tr>';
               echo '<td bgcolor="#dddddd">'.$row["Id_travail"].'</td></font>';
               echo '<td bgcolor="#cccccc">'.$row["Nom_trav"].'</td></font>';
               echo '<td bgcolor="#dddddd">'.$row["Date_deb"].'</td></font>';
               echo '<td bgcolor="#dddddd">'.$row["Heure_deb"].'</td></font>';
              echo '<td bgcolor="#cccccc">'.$row["Heure_fin"].'</td></font>';
    		   echo '<td bgcolor="#cccccc">'.$row["     "].'</td></font>';
                     echo '<td bgcolor="#dddddd">'.$row["Bureau_trav"].'</td></font>';
                     echo '<td bgcolor="#cccccc">'.$row["Domaine_trav"].'</td></font>';
     
     
     
             echo '</tr>'."\n";
           }
           echo '</table>'."\n";
     
    }
    mysql_close(); 
    ?>
    				</div>
                   </div>
     
                   <!-- Le pied de page -->
     
                   <div id="pied_de_page">
                       <p>Copyright "Tout pourri Corporation" 2005, tous droits réservés</p>
                   </div>
     
               </body>
            </html>

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Avant tout tu n'a pas besoin de faire autant d'appel à
    Un unique appel de cette fonction en début de page suffit.

    Ensuite, tu stocke régulièrement ton dans ta variable de session, donc si tu ne viens pas d'une validation de formulaire ta variable est une chaine vide, et ta requete n'est plus bonne.

    Du coup essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['Nom'] = $_POST['Nom'];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isSet($_POST["nom"] )) $_SESSION['Nom'] = $_POST['Nom'];

    i.e.:
    - Si tu viens du formulaire, tu stocke ta variable en session
    - Sinon ta variable est déjà censée être renseignée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 13
    Points
    13
    Par défaut RESOLU Trop bien
    Bonjour Eric

    Merci de ta promptitude.
    J'éspère pouvoir un jour en savoir assez pour à mon tour, .rendre service comme tu le fais.

    Ca fonctionne parfaitement.

    Juste une petite erreure.

    if(isSet($_POST["nom"] )) il faut écrire Nom avec N majuscule.

    Merci encore et à bientot....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer une variable sur plusieurs page
    Par mademoizel dans le forum ASP
    Réponses: 21
    Dernier message: 12/03/2007, 16h48
  2. Garder le nom d'une variable sur plusieurs pages
    Par leloup84 dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2006, 14h21
  3. [Struts] Afficher une ArrayList sur plusieurs pages
    Par tshupaka dans le forum Struts 1
    Réponses: 5
    Dernier message: 18/03/2006, 17h21
  4. [Struts]Affiche d'une liste sur plusieurs pages
    Par guillaume_85 dans le forum Struts 1
    Réponses: 3
    Dernier message: 24/06/2005, 20h23
  5. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo