Souci de pagination

Fermé
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 - 14 juin 2016 à 14:11
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 - 15 juin 2016 à 13:38
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

jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 704
14 juin 2016 à 15:40
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;

0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
14 juin 2016 à 16:05
oui la variable page existe dans l'url mais ça ne passe pas
0
jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 704
14 juin 2016 à 16:13
Peux tu me coller l'url ?
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
14 juin 2016 à 16:19
http://localhost/gestpiece/admin/service.php?page=3
0
jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 704
14 juin 2016 à 17:08
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.
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
Modifié par delavega470 le 15/06/2016 à 11:39
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
0
jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 704
15 juin 2016 à 11:58
Et sur ta page ce n'est toujours pas bon ??
Montres le code complet de ta page.
0

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

Posez votre question
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
15 juin 2016 à 12:27
<?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éjà!<img src="../img/surprised.gif"></h3><br>';
} 
else {

    $reponse = $bdd->query('INSERT INTO service (nom_service)
               VALUES("'.$service.'")');
echo '<h3>Nouveau service ajouté <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>     
0
jordane45 Messages postés 38290 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 novembre 2024 4 704
15 juin 2016 à 13:16
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....
0
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 48
15 juin 2016 à 13:38
je ne comprend pas
0