Sayfalandırmaya Başlarken

Kurulum veya Kurulum

Sayfalandırmanın ayarlanması veya yüklenmesiyle ilgili ayrıntılı talimatlar.

Sayfalandırma çözümü

Aşağıdaki belgeler hem MySQLi hem de PDO destekli sayfalandırma çözümünü açıklamaktadır.

https://github.com/rajdeeppaul/Pagination adresine gidin ve pagination.php dosyasını proje dizininize indirin. Diyelim ki dizin yapınız şöyle görünüyor:

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

URL’nin şöyle görünmesini istediğinizi varsayalım:

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. “index.php” sayfasına “pagination.php” dosyasını şu şekilde ekleyin:

     require_once('pagination.php');
    
  2. Aşağıdaki gibi bir “Pagination” sınıfı örneği oluşturun:

     $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. “setPaginationParameters()” yöntemini kullanarak sayfalandırma parametrelerini aşağıdaki gibi ayarlayın:

     $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. ?page=X URL sorgusuna dayalı tablo satırlarını görüntülemek için getResult() yöntemini çağırın, şöyle:

     $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. Sayfalandırma bağlantılarını aşağıdaki gibi getPaginationLinks() yöntemini kullanarak görüntüleyin:

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

Dipnot(lar): Sonuç satırlarını ve sayfalandırma bağlantılarını tercihinize göre şekillendirebilirsiniz.