IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Pagination pour limiter le nombre de lien sans utiliser les trois points [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Pagination pour limiter le nombre de lien sans utiliser les trois points
    Bonjour.

    Je suis en train de me faire une pagination quand même assez simple pour n'avoir que maximum 10 liens
    de page avec une page courante incluse.

    Mon but est d'obtenir le nombre de lien qui s'afficherait comme ceci: [6][7][8][9][10][11][12][13][14][15] [16]
    et la page courante pourrait être au milieu genre [11] sans lien comme précédent ou suivant ni trois point (...).
    Mais, la page courante n'est pas obligé d'être au milieux et mon nombre de lien peut-être moindre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        $result = $db->prepare("SELECT COUNT(id) FROM members");
        $result->execute();
        $row = $result->fetch();
        $total_records = $row[0];
        $total_pages = ceil($total_records / 1);
     
        for ($i=1; $i<=$total_pages; $i++) {
                    echo "<a href='index.php?page=".$i."'";
                    if ($page==$i) {
              echo "id=active";
                    }
            echo ">";
            echo "".$i."</a> ";
        }
    A partir de mon code ci-haut.

    Je cherche à resté au plus simple possible pour limiter le nombre de code. Actuellement, plus j'ai de pages, plus j'ai de liens.

    De l'aide me serait utile et apprécié.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Je pense avoir résolu et je partage ma solution.

    On ne garde que les 3 liens avant et après la page courante tout en permettant d'aller
    au précédent et suivant ou encore au début ou à la fin. Voir l'image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        $result = $db->prepare("SELECT COUNT(id) FROM members");
        $result->execute();
        $row = $result->fetch();
        $total_records = $row[0];
        $total_pages = ceil($total_records / $parpage);
     
      $pre=$page-1;
      $suiv=$page+1;
      $first=1;
      $last=$total_pages;
     
      if ($page > 4) { echo '<a style="margin-right:3px" href="index.php?page='.$first.'">&laquo;</a>'; }
      if ($page > 4) { echo '<a style="margin-right:3px" href="index.php?page='.$pre.'">...</a>'; }
     
      for($i = max(1, $page - 3); $i <= min($page + 3, $total_pages); $i++) {
          echo "<a href='index.php?page=".$i."'";
          if ($page==$i) {
            echo "id=active";
          }
          echo ">";
          echo "".$i."</a> ";
      }
     
      if ($page < $total_pages - 3) { echo '<a style="margin-right:3px" href="index.php?page='.$suiv.'">...</a>'; }
      if ($page < $total_pages - 3) { echo '<a style="margin-right:3px" href="index.php?page='.$last.'">&raquo;</a>'; }
    Nom : parpage.jpg
Affichages : 306
Taille : 55,8 Ko

    Le code est plutôt légé et facilement adaptable. Je vais tenter d'appliquer le tout en Ajax plus tard.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. TextBox : limiter le nombre de caractères sans MaxLength ?
    Par arnofly dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/03/2009, 16h42
  2. Contrainte pour limiter le nombre de lignes
    Par kanebody dans le forum Développement
    Réponses: 1
    Dernier message: 13/02/2009, 09h20
  3. Limiter le nombre de ligne SANS utiliser LIMIT
    Par hp.costes dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/05/2008, 22h36
  4. Limitation du nombre de liens ODBC
    Par steph3326 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 30/04/2008, 16h51
  5. Fonction pour limiter le nombre de checkboxes cochees
    Par nabab dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/07/2007, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo