paginationAan de slag met paginering


Opmerkingen

Deze sectie geeft een overzicht van wat paginering is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen de paginering vermelden en een link naar de gerelateerde onderwerpen bevatten. Omdat de documentatie voor paginering nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Installatie of instellingen

Gedetailleerde instructies voor het instellen of installeren van paginering.

Paginatie-oplossing

De volgende documentatie beschrijft zowel door MySQLi als door PDO ondersteunde pagineringsoplossing.

Ga naar https://github.com/rajdeeppaul/Pagination en download het pagination.php bestand naar uw projectmap. Stel dat uw mapstructuur er als volgt uitziet:

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

En stel dat u wilt dat de URL er zo uitziet:

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. Neem het pagination.php bestand op in de index.php pagina, zoals hier:

    require_once('pagination.php');
     
  2. Maak een instantie van de klasse Pagination , zoals deze:

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

    De constructormethode heeft de volgende parameters,

    (1) $databaseDriver : databasestuurprogramma, momenteel ondersteunde stuurprogramma's zijn MySQLi en PDO
    (2) $hostname : hostnaam
    (3) $username : gebruikersnaam
    (4) $password : wachtwoord
    (4) $databaseName : databasenaam

    Voorbeeld (en):

    $pg = new Pagination('mysqli', 'localhost', 'root', 'pass', 'pagination_db');
    $pg = new Pagination('pdo', 'localhost', 'root', 'pass', 'pagination_db');
     
  3. Stel paginatieparameters in met de methode setPaginationParameters() , als volgt:

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

    De methode setPaginationParameters() heeft de volgende parameters,

    (1) $rowsPerPage : Aantal weer te geven tabelrijen per pagina
    (2) $numOfPaginationLinks : aantal paginatielinks dat per pagina moet worden weergegeven

    Voorbeeld (en):

    $pg->setPaginationParameters(10, 5);
     
  4. Roep de methode getResult() aan om tabelrijen weer te geven op basis van de URL-zoekopdracht ?page=X , zoals hier:

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

    De methode getResult() heeft de volgende parameters,

    (1) $queryString : SELECT queryreeks
    (2) $bindParameterArray : array met $bindParameterArray of waarden
    (3) $globalGetArray : Superglobal array $_GET
    (4) $keyFromURLQuery : sleutel van de URL-zoekopdracht, bijv. page

    Voorbeeld (en):

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

    Opmerking: geef geen LIMIT of OFFSET clausule op in de query, het script zorgt hiervoor.

    Loop nu door de resultatenset ie $resultSet array om toegang te krijgen tot de $resultSet , zoals deze:

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

    Opmerking: als je de complete var_dump($resultSet); wilt zien, doe dan var_dump($resultSet); .

  5. Toon paginatielinks met de methode getPaginationLinks() , zoals deze:

    $pgLinks = $pg->getPaginationLinks();
     

    De methode getPaginationLinks() heeft geen parameter nodig en retourneert een reeks paginatielinks in de volgende indeling,

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

    Loop nu door de $pgLinks array om paginagtielinks weer te geven, zoals deze:

    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;';
    }
     

    Opmerking: als je de complete var_dump($pgLinks); wilt zien, doe dan var_dump($pgLinks); .


Voetnoot (en): u kunt de resultaatrijen en paginakoppelingen naar uw stijl opmaken.