Débuter avec la pagination

Installation ou configuration

Instructions détaillées sur la configuration ou l’installation de la pagination.

Solution de pagination

La documentation suivante décrit à la fois la solution de pagination prise en charge par MySQLi et PDO.

Allez sur https://github.com/rajdeeppaul/Pagination et téléchargez le fichier pagination.php dans le répertoire de votre projet. Disons que votre structure de répertoires ressemble à ceci :

project directory
       |
       |--pagination.php (pagination script)
       |--index.php (file where you want to use this pagination script)

Et supposons que vous souhaitiez que l’URL ressemble à ceci :

http://example.com/index.php          // user is on page 1
http://example.com/index.php?page=1   // user is on page 1
http://example.com/index.php?page=5   // user is on page 5
// etc ...

index.php

  1. Inclure le fichier pagination.php dans la page index.php, comme ceci :

     require_once('pagination.php');
    
  2. Créez une instance de la classe Pagination, comme ceci :

     $pg = new Pagination($databaseDriver, $hostname, $username, $password, $databaseName);
    

    The constructor method takes the following parameters,

    (1)$databaseDriver: Database driver, currently supported drivers are MySQLi and PDO
    (2)$hostname: Hostname
    (3)$username: Username
    (4)$password: Password
    (4)$databaseName: Database name

    Example(s):

     $pg = new Pagination('mysqli', 'localhost', 'root', 'pass', 'pagination_db');
     $pg = new Pagination('pdo', 'localhost', 'root', 'pass', 'pagination_db');
    
  3. Définissez les paramètres de pagination à l’aide de la méthode setPaginationParameters(), comme ceci :

     $pg->setPaginationParameters($rowsPerPage, $numOfPaginationLinks);
    

    The setPaginationParameters() method takes the following parameters,

    (1)$rowsPerPage: Number of table rows to display per page
    (2)$numOfPaginationLinks: Number of pagination links to display per page

    Example(s):

     $pg->setPaginationParameters(10, 5);
    
  4. Appelez la méthode getResult() pour afficher les lignes du tableau en fonction de la requête d’URL ?page=X, comme ceci :

     $resultSet = $pg->getResult($queryString, $bindParameterArray, $globalGetArray, $keyFromURLQuery);
    

    The getResult() method takes the following parameters,

    (1)$queryString: SELECT query string
    (2)$bindParameterArray: Array containing bind variables or values
    (3)$globalGetArray: Superglobal array $_GET
    (4)$keyFromURLQuery: Key from the URL query i.e. page

    Example(s):

     $resultSet = $pg->getResult('SELECT * FROM pagination', NULL, $_GET, 'page');
     $resultSet = $pg->getResult('SELECT * FROM pagination WHERE column1 = ? AND column2 = ?', array($value1, $value2), $_GET, 'page');
    

    Note: Don’t specify any LIMIT or OFFSET clause in the query, the script will take care of these.

    Now loop through the result set i.e. $resultSet array to access/display row details, like this:

     foreach($resultSet as $row){
         /* access/display row details */
         /* $row['column1'], $row['column2'] etc. */
     }
    

    Note: If you want to see the complete array structure, do var_dump($resultSet);.

  5. Affichez les liens de pagination à l’aide de la méthode getPaginationLinks(), comme ceci :

     $pgLinks = $pg->getPaginationLinks();
    

    The getPaginationLinks() method doesn’t take any parameter and returns an array of pagination links in the following format,

     array (size=3)
       'prev' => @boolean
       'links' => @array
       'next' => @boolean
    

    Now loop through the $pgLinks array to display paginagtion links, like this:

     if(is_array($pgLinks) && count($pgLinks) && $pgLinks['prev']){
         /* previous pages are available */
         echo '« ';
     }
     if(is_array($pgLinks) && count($pgLinks) && count($pgLinks['links'])){
         /* show pagination links */
         foreach($pgLinks['links'] as $link){
             echo '<a href="example.php?page='.$link.'">'.$link.'</a> ';
         }
     }
     if(is_array($pgLinks) && count($pgLinks) && $pgLinks['next']){
         /* next pages are available */
         echo '&raquo;';
     }
    

    Note: If you want to see the complete array structure, do var_dump($pgLinks);.


Note(s) de bas de page : Vous pouvez styliser les lignes de résultats et les liens de pagination selon votre choix.