Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
950 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pagination

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pagination

n°2251916
bappro
Posté le 27-02-2015 à 19:07:31  profilanswer
 

Salut
 Je viens d'etre inscrit sur ce forum apres avoir effectue une recherche sur la pagination je viens de decouvrir ces codes qui ont ete poste. Apres les avoir applique dans mon programme, cela fonctionne a merveille lorsque la table a de nombreux enregistrements, mais si la table contient de donnees en petite quantite  les liens de pagination ne fonctionnent pas correctement, voici les code:
<?php
 $Nmax   = 15;
 $nbre_cle  = 7;
 $page   = (int) @$_GET['page'] ? (int) @$_GET['page'] : 1;
 $pagin_pas  = ($page - 1) * $Nmax;
 $page_max = null;
 
 
 
// PARTIE 1
 
 
 
 $dbh = mysql_connect('localhost', 'root', '');
 mysql_select_db('baseflashfoad', $dbh);
 
 $sql  = sprintf("SELECT SQL_CALC_FOUND_ROWS * FROM `t_stages` LIMIT %d, %d", $pagin_pas, $Nmax);
 $result = mysql_query($sql);
 
 $count_result = mysql_query("SELECT FOUND_ROWS() as FOUND_ROWS" );
 $count_result = mysql_fetch_object($count_result);
 
 $count  = $count_result->FOUND_ROWS;
 $row = array();
 
 while($data = mysql_fetch_object($result))
 array_push($row, $data);
 
 
 
// PARTIE 2
 
 echo '<div>' . sprintf('Resultat %d à %d sur %d :', $pagin_pas + 1, $pagin_pas + count($row), $count) . '</div>';
 echo '<table>';
 
 foreach($row as $data){
  echo '<tr>';
 
  foreach($data as $value)
  echo "<td>$value</td";
 
  echo '</tr>';  
 }
 
 
 
// PARTIE 3
 
 
 
 $foot  = array();
 $page_max  = ceil($count / $Nmax) + 1;
 
 if(($page + $nbre_cle) < $page_max){
  $start  = $page;
  $end  = $page + $nbre_cle;
 }else{
  $start = $page_max - $nbre_cle;
  $end = $page_max;
 }
 
 
if($page > 1){
  $link = (object) array('text' => '<<', 'num' => '1');
  array_push($foot, $link);
 
  $link = (object) array('text' => '<', 'num' => ($page - 1));
  array_push($foot, $link);
 }
 
 for($i = $start; $i < $end; $i++){
  $link = (object) array('text' => $i, 'num' => $i);  
  array_push($foot, $link);
 }
 
 if($page < $page_max - 1){
  $link = (object) array('text' => '>', 'num' => ($page + 1));
  array_push($foot, $link);
 
  $link = (object) array('text' => '>>', 'num' => $page_max);
  array_push($foot, $link);
 }
 
 echo '</table>';
 echo '<div>';
 
 foreach($foot as $link)
 echo '<a href="?page=' . $link->num . '">' . $link->text . '</a>';
 
 echo '</div>';
?>
 
les variables $Nmax   = 15;
 $nbre_cle  = 7;  
fonctionnent a merveille quand il y a de donnees en grand nombre dans la table mais s'il y a de donnees en quantite tres limitee les liens de paginations dysfonctionnent meme si les donnees s'affichent normalement sur la page.
j'aimerais que les liens de pagination se reduisent automatiquement quand il y a de donnees en petit nombre dans la table.
Je sollicite votre aide qui me serait tres apprecie
merci

mood
Publicité
Posté le 27-02-2015 à 19:07:31  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pagination

 

Sujets relatifs
[JQUERY/ASP/ORACLE]TABLE AJAX COLLAPSE PAGINATION[RESOLU] EXT-JS 4 : tableau avec pagination + tri
quel "plugin" php utilisez-vous pour faire une pagination ?Optimiser une pagination ?
Pagination sans LIMIT[Résolu]Bouton <Précédent> <Suivant> Pagination
PB Count (Résolu) et un souci de lien de paginationEncore une question sur la pagination dans une feuille Excel
Problème de pagination[ASP.NET & C#] Pagination : remplacer les numéros par "..."
Plus de sujets relatifs à : pagination


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR