[RESOLU] pagination précédent suivant

Eléphant du PHP | 257 Messages

12 janv. 2017, 22:29

bonjour comment faut il faire pour deux bouton suivant est précédent svp?
echo '<p align="center">'; //Pour l'affichage, on centre la liste des pages
   for($i=1; $i<=$nombreDePages; $i++){ //On fait notre boucle
          
     //On va faire notre condition
     if($i == $pageActuelle){ //Si il s'agit de la page actuelle...
         echo '<b><span class="bouton_verts">'.$i.'</span></b>'; 
     }else{ //Sinon...
        echo '<b><a href="voir_annonce.php?page='.$i.'" style="color:#0000FF;" class="bouton_verts">'.$i.'</a></b>';
     }
}
echo '</p>';

Mammouth du PHP | 1967 Messages

13 janv. 2017, 09:25

echo '<p align="center">'; //Pour l'affichage, on centre la liste des pages
if( $pageActuelle > 1) echo '<b><a href="voir_annonce.php?page='.$pageActuelle-1.'" style="color:#0000FF;" class="bouton_verts">Précedent</a></b>';
   for($i=1; $i<=$nombreDePages; $i++){ //On fait notre boucle
          
     //On va faire notre condition
     if($i == $pageActuelle){ //Si il s'agit de la page actuelle...
         echo '<b><span class="bouton_verts">'.$i.'</span></b>'; 
     }else{ //Sinon...
        echo '<b><a href="voir_annonce.php?page='.$i.'" style="color:#0000FF;" class="bouton_verts">'.$i.'</a></b>';
     }
}
if( $pageActuelle < $nombreDePage) echo '<b><a href="voir_annonce.php?page='.$pageActuelle+1.'" style="color:#0000FF;" class="bouton_verts">Suivant</a></b>';
echo '</p>';
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 25 Messages

13 janv. 2017, 15:17

Bonjour,

Il faut toujours traiter les cas de figure de la pagination en dehors de la logique d'affichage et ensuite utiliser la pagination calculée dans l'affichage.
Voici un petit exemple

Code : Tout sélectionner

// initialisation des variables private function init_pagination(){    $this->maxpages=10 // valeur à calculer via requête ou autre source.    $this->curpage=1;    $$this->prevpage=0;$nextpage=0; } // calcul pagination private function calc_pagination(int $curpage){   $curpage=intval($curpage);    if($curpage > 0 && $curpage <=$this->maxpage){$this->curpage=$curpage;}else{return false;}   if($curpage===1){$this->prevpage=1;}else{$this->prevpage=$curpage-1;}   if($curpage===$this->maxpage){$this->nextpage=$this->maxpage;}else{$this->nextpage=$curpage+1;}  return true; } public function displayplage(int $curpage){   $ret=$this->calc_pagination($curpage); if($ret===false){ return 'Erreur pagination';}  // affichage de la page en fonction de la page courante, la page précédente et la page suivante calculées et disponibles dans $curpage ou $this->curpage, $this->nextpage, $this->prevpage }
Architecte de données & applications web
MCSE Data Management & Analytics

Eléphant du PHP | 257 Messages

13 janv. 2017, 23:11

bonjour cela est résolut et j'ai fait comme cela et cela pourra peut-être servir à d'autre
$messagesParPage=10; // On met dans une variable le nombre de messages qu'on veut par page 
// On récupère le nombre total de messages
  $requete = $connection->prepare('SELECT count(*) AS id FROM messages WHERE dest=:dest');
  $requete->execute(array(':dest'=> $_SESSION['login']));
  $resultat = $requete->fetch();
  $nombre_messages = $resultat['id'];
//Nous allons maintenant compter le nombre de pages.
$nombreDePages = ceil($nombre_messages / $messagesParPage);
if(isset($_GET['page'])){ // Si la variable $_GET['page'] existe...
     $pageActuelle=intval($_GET['page']);     
     if($pageActuelle>$nombreDePages){ // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
     $pageActuelle=$nombreDePages;
     }
}else{ // Sinon
$pageActuelle='1'; // La page actuelle est la n°1    
} 
$premiereEntree=($pageActuelle-1)*$messagesParPage;
puis
$reponse = $connection->prepare('SELECT * FROM messages WHERE dest=:dest ORDER BY date DESC LIMIT '.$premiereEntree.','.$messagesParPage.'');
suivant précédent
if($pageActuelle!=1){
                $precedent=$pageActuelle-1;
                echo'<a class="pagination_suivant" href="message_recu.php?page='.$precedent.'">precedent</a>';    
                     }
	       for($i=1; $i<=$nombreDePages; $i++){
               echo'<a class="pagination" href="message_recu.php?page='.$i.'">'.$i.'</a>';       
                     }
           if($pageActuelle<$nombreDePages){
                 $suivant= $pageActuelle+1;
                 echo'<a class="pagination_suivant" href="message_recu.php?page='.$suivant.'">suivant</a>';   
                     }