Partage
  • Partager sur Facebook
  • Partager sur Twitter

Système de pagination sur un array

Sujet résolu
    21 juin 2018 à 15:41:46

    Bonjour,

    Je cherche un moyen de réaliser un système de pagination sur l'affichage d'un array.

    Il y a de nombreux tuto là dessus mais seulement à partir de la base de donnée. Ce que je voudrais c'est diviser l'affichage des données de mon array directement sans passer par une bdd. Avec évidement un système de sélection de la page.

    Est-ce possible ou suis-je obligé de passer par la bdd ?

    Merci d'avance!

    • Partager sur Facebook
    • Partager sur Twitter
      21 juin 2018 à 16:15:15

      > Est-ce possible ou suis-je obligé de passer par la bdd ?

      Bien sûr que non. C'est encore plus simple, il suffit juste d'adapter, l'idée reste la même, hein.

      Le nombre total de valeurs, bah, count te le donne.

      Pour ne sélectionner X valeurs à partir de l'indice Y : LimitIterator ou array_slice. foreach dessus et basta.

      -
      Edité par julp 21 juin 2018 à 16:22:17

      • Partager sur Facebook
      • Partager sur Twitter
        21 juin 2018 à 16:18:08

        J'ai essayé mais je bloque sur l'étape qui utilise la requête sql ORDERBYidDESCLIMIT, comment faire un équivalent en php ?
        • Partager sur Facebook
        • Partager sur Twitter
          21 juin 2018 à 16:20:16

          Bonjour,

          Si tu as une boucle for, tu commences ta boucle au début du LIMIT et l'arrêtes à la fin du LIMIT.

          • Partager sur Facebook
          • Partager sur Twitter
            21 juin 2018 à 16:26:50

            Bonjour,

            Je vois, mais ces paramètres vont devoirs changer en fonction de la page sélectionnée, comme faire quelque chose d'adaptatif sans coder en dur les paramètres ?

            -
            Edité par Boursouflou 21 juin 2018 à 16:27:04

            • Partager sur Facebook
            • Partager sur Twitter
              21 juin 2018 à 16:38:46

              Hello, 

              voici un code sans prétention (< de 10 lignes sans commentaires) qui peut te montrer un exemple.Tout est évolutif. A toi d'adapter et de sécuriser le tout !

              <?php
              //ATTENTION
              //Code non sécurisé, non optimisé, ne détecte pas une page hors plage
              //Ne détecte pas une page négative, ne détecte pas le bon type de donnée en GET
              //Uniquement à titre de démonstration de pagination simple d'un array
              //...
              //On récupère la page demandée, ou alors page 1 par défaut
              $page = (isset($_GET['p']) ? $_GET['p'] : 1);
              //On donne une limite de données par page
              $limit = 3;
              //Tableau basique de valeurs
              $data = ['data 0','data 1','data 2','data 3','data 4','data 5','data 6','data 7','data 8','data 9','data 10','data 11','data 12',
                  'data 13','data 14','data 15','data 16','data 17','data 18','data 19','data 20','data 21','data 22','data 23','data 24'];
              //Calcul du début et fin de la pagination
              $start = ($page-1)*$limit;
              $end = $page*$limit;
              //Boucle d'affichage
              for($i=$start;$i<$end;$i++):
                  echo $data[$i].'<br />';
              endfor;
              



              • Partager sur Facebook
              • Partager sur Twitter
              Kwo:re / topic OC | Aidez les autres, indiquez un sujet résolu ! | Vous êtes bloqué ? Suivez le guide ! | N'aide pas par MP
                21 juin 2018 à 16:49:40

                Je crois avoir compris, je vous tiens au courant quand je réussi mon code ! Merci !
                • Partager sur Facebook
                • Partager sur Twitter

                Système de pagination sur un array

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown