Pagination

Bonjour,

bonjour les amis ,

comment réaliser une pagination dans une page d'affichage,

le langage c'est php,

aidez moi svp
Configuration: Windows XP
Firefox 3.5

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Bonjour
    Pouvez vous préciser les fonctions de votre "pagination" ?
    Comme ce terme désigne notament une ancienne technique de gestion de la mémoire ça me rend un peu perplexe :-)
    1. non non rien avoir avec le OS ,
      c'est quand vous avez bcp de donneés à affichier mais la page sur laquelle vous vaullez l'affiche ne supporter pas tous ca exemple:les livre d'or,...
    2. @mit0910Si c'est pour installer un livre d'or béton et sécure il vaut mieux rechercher des scripts sur

      http://www.phpscripts-fr.net/

      Sinon voici un morceau de code qui ressemble à ça mais sans garantie (ce n'est ni lisible, ni propre, ni bien commenté, de plus j'utilise les globales $_POST comme variables ce qui n'est pas indiqué
      c'est donc juste pour étudier le principe, pour dépanner quoi :-)

      Code à mettre dans la page de présentation de la pagination :

      
      <?php
      
      include "list-struct.php";
      // -------------------  pour info ----------------------
      // Pagination par N de pages 
      // $count -> nb de documents total 
      // $nb_titles_par_page -> nb de de doc par pages 
      // \$nb_pages_par_seg -> nombre de numéros de page à présenter 
      // \$vars -> variables recuperees par $_POST / $_GET
      //  Important: la variable \$vars['CUR_PAGE'] contiendra le numéro de la page courante. 
      // ------------------- fin pour info ----------------------
       
      print list_struct ( $count, $nb_titles_par_page, $nb_pages_par_seg, $vars)."\n" ;
      
      print "imprimer la ou les pages courante...";
      
      ?>
      
      


      Dans list-struct.php :

      
      <?php
      
      
      function list_struct ( $nb_titles_total, $nb_titles_par_page, $nb_pages_par_seg, $vars) 
      {
      $buf = "";
      $reqbody = "";
      
      if (!isset( $vars['CUR_PAGE'] )) {
      	$cur_page = 0; 
      	} else {
      	$cur_page = $vars['CUR_PAGE']; 
      	}
      
      foreach($vars as $key=>$val) {
      	if ($key == "CUR_PAGE") continue;
          if ($reqbody !== "") $reqbody.= "&";
          $reqbody.= $key."=".urlencode($val);
          }
      	
      
      $nb_pages_total = ceil($nb_titles_total / $nb_titles_par_page);
      
      $nb_segs_total = ceil($nb_pages_total / $nb_pages_par_seg);
      
      $cur_seg = floor($cur_page / $nb_pages_par_seg );
      
      $is_prev_seg = ($cur_seg > 0) ? 1 : 0;
      
      $is_next_seg = ($cur_seg + 1 < $nb_segs_total) ? 1 : 0;
      
      $offset_deb_page =	$cur_seg * $nb_pages_par_seg;
      
      $offset_fin_page =	min (($offset_deb_page + $nb_pages_par_seg), $nb_pages_total);
      
      if ($nb_segs_total < 1) {
      	return "";
      	}
      
      $buf .= "<br /><div style='font-weight: lighter; text-align: center; width: 100%;'>\n";
      
      if ($is_prev_seg) {
      	$buf .= "<a href='?".$reqbody."&CUR_PAGE=".($cur_page-$nb_pages_par_seg)."'>&nbsp;<<&nbsp;</a>\n";
      	}
      
      for ($i = $offset_deb_page; $i < $offset_fin_page ; $i ++) {
      	$buf .= (($i == $cur_page) ? "&nbsp; ".$i  ." &nbsp;" : "<a href='?".$reqbody."&CUR_PAGE=".$i."'>&nbsp; $i &nbsp;</a>\n");
      	}	
      	
      if ($is_next_seg) {
      	$buf .= "<a href='?".$reqbody."&CUR_PAGE=".$offset_fin_page."'>&nbsp;>>&nbsp;</a>\n";
      	}
      	
      $buf .= "<br /></div>\n";
      
      return $buf;	
      }
      
      ?>