Primeros pasos con la paginación

Instalación o Configuración

Instrucciones detalladas sobre cómo configurar o instalar la paginación.

Solución de paginación

La siguiente documentación describe la solución de paginación compatible con MySQLi y PDO.

Vaya a https://github.com/rajdeeppaul/Pagination y descargue el archivo pagination.php en el directorio de su proyecto. Digamos que la estructura de su directorio se ve así:

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

Y supongamos que desea que la URL se vea así:

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. Incluya el archivo pagination.php en la página index.php, así:

     require_once('pagination.php');
    
  2. Cree una instancia de la clase Paginación, como esta:

     $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. Configure los parámetros de paginación usando el método setPaginationParameters(), así:

     $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. Llame al método getResult() para mostrar las filas de la tabla según la consulta de URL ?page=X, así:

     $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. Muestre enlaces de paginación usando el método getPaginationLinks(), así:

     $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);.


Nota(s) al pie: Puede diseñar las filas de resultados y los enlaces de paginación según su elección.