Souci de pagination

Bonjour à tous j'ai fais une page affichant la liste d'un enregistrement avec une pagination , l'ennui c'est que quand je clic sur le n°1 ou n°3 la page me montre toujours la première page c'est a dire la page 1.
voici mon code un coup de main svp
<?php
include ('../codes/bdcon.php');
if(!isset($_GET['page'])|| $_GET['page']=='0')
{
$page_actuelle=1; 
} else{
   $page_actuelle=$_GET['page'];
}

$fin=10;
$deb=($page_actuelle-1)*$fin;
$req="select nom_service from service limit ".$deb.",".$fin;
$reponse = $bdd ->query($req);
?>

6 réponses

  1. Modérateur
    Bonjour,

    Lorsque tu affiche cette deuxième page ... que contient l'url ??
    La variable "page" existe et est renseignée ??

    PS: Ton IF
    if(!isset($_GET['page'])|| $_GET['page']=='0')
    {
    $page_actuelle=1; 
    } else{
       $page_actuelle=$_GET['page'];
    }
    

    peut plus simplement s'écrire :
    $page_actuelle = !empty($_GET['page']) && $_GET['page'] !=0 ? $_GET['page'] : 1;
    

    1. oui la variable page existe dans l'url mais ça ne passe pas
      1. Modérateur
        Peux tu me coller l'url ?
    2. http://localhost/gestpiece/admin/service.php?page=3
      1. Modérateur
        ok.
        Tu as fait la correction que je t'ai donné pour la variable $page_actuelle ?
        Sinon fais la.

        Puis fais un echo de la variable $req stp.
    3. j'ai changé la variable , le echo me donne ceux-ci et j'ai testé la requête dans la bd il sélectionne les éléments qu'il faut
      select nom_service from service limit 30,10
      
      1. Modérateur
        Et sur ta page ce n'est toujours pas bon ??
        Montres le code complet de ta page.
    4. <?php
      include ('../codes/bdcon.php');
      
      $page_actuelle= !empty($_GET['page']) && $_GET['page'] !=0 ? $_GET['page'] : 1; 
      
      $fin=10;
      $deb=($page_actuelle-1)*$fin;
      $req="select nom_service from service limit ".$deb.",".$fin;
      $reponse = $bdd ->query($req);
      echo $req;
      ?>
        <style>
              body{
                background-image: url(background.png);
                font-family: 'Open Sans',sans-serif;
                font-weight: 400;
                font-size: 13px;
              }
       
              input [type=email] { 
                background-color: #F0DDDD;
                border-color: #e88;
                -webkit-box-shadow: 0 0 5px rgba(255, 0, 0, .8);
                -moz-box-shadow: 0 0 5px rbba(255, 0, 0, .8);
                -o-box-shadow: 0 0 5px rbba(255, 0, 0, .8);
                -ms-box-shadow: 0 0 5px rbba(255, 0, 0, .8);
                box-shadow:0 0 5px rgba(255, 0, 0, .8);
              }
       
              form {
                width:300px;
                margin: 20px auto;
              }
       
              input {
                font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
                border:1px solid #ccc;
                font-size:20px;
                width:300px;
                min-height:30px;
                display:block;
                margin-bottom:15px;
                margin-top:5px;
                outline: none;
       
                -webkit-border-radius:5px;
                -moz-border-radius:5px;
                -o-border-radius:5px;
                -ms-border-radius:5px;
                border-radius:5px;
              }
       
              input[type=submit] {
                background:none;
                padding:10px;
                cursor: pointer;
                   background-color: #F0DDDD;
                border-color: #e88;
                -webkit-box-shadow: 0 0 5px rgba(255, 0, 0, .8);
                -moz-box-shadow: 0 0 5px rbba(255, 0, 0, .8);
                -o-box-shadow: 0 0 5px rbba(255, 0, 0, .8);
                -ms-box-shadow: 0 0 5px rbba(255, 0, 0, .8);
                box-shadow:0 0 5px rgba(255, 0, 0, .8);
              }
       
              label{
                cursor: pointer;
                
              }
              /*div.panel-body{
                  background: #F0DDDD;
              }*/
             /* Règle de base pour le lien */ 
                  a{ 
                      color:#4c0ed8; 
                       
                  } 
                  a:hover,a:focus{
                      color:#000;
                  }
                  
                  /* Position et couleur bulle */
                  a span{ 
                      position:absolute;
                      margin-top:25px; 
                      margin-left:-25px;
                      color:#fff; 
                      background:rgba(0, 0, 0, 0.5); 
                      padding:25px; 
                      border-radius:3px; 
                      
                      /* Faire disparaire infobulle par défaut */
                      /* On determine l'origine de la rotation */ 
                      transform:scale(0) rotate(-180deg);
                      /* Faire durer l'effet */
                      transition:all .25s;
                      /* Effet sur la transparence */ 
                      opacity:0;
                  }
                  
                  /* Apparition de la bulle avec le scale à 1 */ 
                  a:hover span, a:focus span{ 
                      transform:scale(1) rotate(0);
                      /* Effet sur la transparence */ 
                      opacity:1;
                  }  
              
          </style>
      <?php 
      include 'entete.php';
      ?><img src="../img/formation.jpg"> <img src="../img/form1.png"> 
      <div align="center" class="row">
                      <div class="col-lg-4">
                          <div class="panel panel-default">
                              <div class="panel-heading">
                              ENREGISTREMENT DES SERVICES DU CHU
                              </div>
                              <div class="panel-body">
                                  <p> <form method='post' name="#">
      <label>Nom du service: <font color="red"><em>* </em></font></label>
              <input type="text" id="nservice" name="nomService" placeholder="informatique" >  
      </p>  
        <p> <a href="#" style="text-decoration:none;"> 
              <input name="valider" type="submit" value="Enregistrer"></a> </p>
              </form>
        <?php
      if(isset($_POST['valider']))
      {
      $service=addslashes($_POST['nomService']);
      include('../codes/bdcon.php');
       // Vérification de l'element existant
      $req = $bdd->prepare('SELECT * FROM service WHERE nom_Service = :nomService');
      $req->execute(array(
      'nomService' => $service));
      $resultat =$req->fetch();
      if ($resultat)
      {
               echo '<h3>Ce service existe d&eacutej&agrave!<img src="../img/surprised.gif"></h3><br>';
      } 
      else {
      
          $reponse = $bdd->query('INSERT INTO service (nom_service)
                     VALUES("'.$service.'")');
      echo '<h3>Nouveau service ajout&eacute <img src="../img/check.png"> </h3>';
      
      }
      
        }  
      ?>
               </p>
                              </div>
                              <div class="panel-footer">
                                  Les champs (<font color="red">*</font>) sont obligatoires!
                              </div>
                          </div>
                      </div>   <div align="center">
                     <!-- /.col-lg-4 -->     
                  </div>             
         <div align class="col-lg-6">
                          <div class="panel panel-default" >
                              <div class="panel-heading">
                                  Liste des services
                              </div>
                              <!-- /.panel-heading -->
                              <div class="panel-body">
                                  <div class="table-responsive table-bordered">
                                      <table class="table">
                                         <div class="col-sm-3 col-md-3 pull-right">
                  <form class="navbar-form" role="search">
                      <div class="input-group">
                          <input type="text" class="form-control" placeholder="Rechercher" name="q">
                          <div class="input-group-btn">
                              <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search" width="1"></i></button>
                          </div>
                      </div>
                  </form>
              </div>
                                          <thead>
                                              <tr>
                                                  <th>Nom du service</th>
                                                  <th>Action</th>
                                              </tr>
                                          </thead>
                                          <tbody>
                                              <tr>
                                                  <td><?php
                                                  include('../codes/bdcon.php');
                                                  $nombreDeMessagesParPage =10;
                                                  $page_actuelle = 1 ;
                                                  $reponse = $bdd->query('SELECT * FROM service order by nom_service limit '.$page_actuelle = 1 .','.$nombreDeMessagesParPage.'');
                                                          while ($donnees = $reponse->fetch())
                                                       {    
                                                     echo $donnees['nom_service'].'<hr/><br>';
                                               }?><td><?php
                                                 include('../codes/bdcon.php');
                                                   $reponse = $bdd->query('SELECT * FROM service order by nom_service limit '.$page_actuelle = 1 .','.$nombreDeMessagesParPage.'');
                                    
                                                  while ($donnees = $reponse->fetch())
                                                       {    
                                                   echo ' <a style="text-decoration:none" href="editeserv.php?id_service='.$donnees['id_service'].'">Editer</a>
                          <a style="text-decoration:none" href="supserv.php?id_service='.$donnees['id_service'].'"
                         >Supprimer</a><hr/></br>';}?>
                                                </td>   
                                          </tbody>
                                      </table>
                                  </div>
                                  <!-- /.table-responsive -->
                                  <?php
      $nombreDeMessagesParPage = 10;
      $retour = $bdd->query('SELECT COUNT(*) AS nom_service FROM service');
      $donnees = $retour->fetch();
      $totalDesMessages = $donnees['nom_service'];
      $nombreDePages = ceil($totalDesMessages /
      $nombreDeMessagesParPage);
      echo '<br>Page :';
       for ($page_actuelle=1; $page_actuelle <=$nombreDePages ;$page_actuelle++)
       { 
         ?> <a href="service.php?page=<?php echo $page_actuelle ?>" style="text-decoration: none"><?php echo $page_actuelle ?></a><?php
       }
        ?>
                              </div>
                              <!-- /.panel-body -->
                          </div>
                          <!-- /.panel -->
                      </div>     
          
             </div>
          </div> </br> </br> </br></div> </br> 
                 
                  
      <div align="center">
      <?php include 'footer.php';?>
      </div>     
      1. Modérateur
        Donc...
        lignes 2 à 10 .. tu as :
        include ('../codes/bdcon.php');
        
        $page_actuelle= !empty($_GET['page']) && $_GET['page'] !=0 ? $_GET['page'] : 1; 
        
        $fin=10;
        $deb=($page_actuelle-1)*$fin;
        $req="select nom_service from service limit ".$deb.",".$fin;
        $reponse = $bdd ->query($req);
        echo $req;
        


        .... et lignes 192 - 197 ...
          include('../codes/bdcon.php');
                                                    $nombreDeMessagesParPage =10;
                                                    $page_actuelle = 1 ;
                                                    $reponse = $bdd->query('SELECT * FROM service order by nom_service limit '.$page_actuelle = 1 .','.$nombreDeMessagesParPage.'');
        


        Ne penses-tu pas qu'il y a un petit conflit ?????

        NB : Pour rendre ton code plus simple à lire et à deboguer.... prends l'habitude de placer le maximum de code PHP ... AVANT le code HTML....