Na webu který spravuji se začala v MySQL databázi kupit data, výpis všech začal být zbytečný, tak jsem ztvořil za pár minut jednoduchý skriptík na jejich stránkování. Článek je určen začátečníkům, kteří si s tímto problémem neví rady.

Skript jsem patřičně okomentoval aby byl přehledný. Výstupní HTML neobsahuje řádnou strukturu HTML dokumentu, protože můj skript byl určen pro vložení do jiné stránky opatřené hlavičkami. Aktuální strana je předávána pomocí parametru src v URL.

PHP:
  1. <?php
  2. /**
  3. * Jednoduchý Skript pro stránkování záznamů z databáze
  4. * @author Ondřej Fibich
  5. */
  6.  
  7.  $PZS = 6; // pocet záznamů na stranu
  8.  $str = 1; // aktuální strana (počítáno od 1)
  9.  $message = "Error"; // chybová zpráva
  10.  
  11.  if (isset($_GET['str']) &&
  12.      $_GET['str']> 0) { // z parametrů URL vybere aktuální stránku
  13.     $str = $_GET['str'];
  14.  }
  15.  
  16.  // připojení k databázi
  17.  $sql = mysql_connect("localhost", "user", "password") or die($message);
  18.  // výběr počtu prvků v tabulce
  19.  $resultCount = mysql_query($sql, "SELECT COUNT(0) as COUNT_TABLE FROM table");
  20.  // uložení počtu záznamů
  21.  $pocetZaznamu = mysql_result($resultCount, 0);
  22.  
  23.  // SQL funkce LIMIT(START, COUNTS)
  24.  // výpočet STARTU
  25.  $start = ($str - 1) * $PZS;
  26.  // výběr vhodných položek
  27.  $result = mysql_query($sql,"SELECT*FROM table LIMIT ".$start.",".$PZS);
  28.  
  29.  // výpis výsledků
  30.  while($zapis = mysql_fetch_object($result)) {
  31.     echo "<p>Vypis dat. Např.: $zapis->sloupec</p>";
  32.  }
  33.  
  34.  //
  35.  // Jednoduché listování mezi stranami
  36.  //
  37.  echo "<div style='float: right; clear: both; margin-top: 25px;'>" .
  38.       "<a href='str=" .($str> 1 ? $str - 1 : "1"). "'>&laquo;</a>&nbsp";
  39.  
  40.  // počet stránek
  41.  $pocet = (($pocetZaznamu % $PZS)> 0) ? (int)($pocetZaznamu / $PZS) + 1 : $pocetZaznamu / $PZS;
  42.  
  43.  // výpis odkazů na stránky
  44.  for ($i = 1; $i <= $pocet; $i++) {
  45.     if ($i != $str) {
  46.         echo "<a href='?str=".$i."'>".$i."</a>&nbsp;";
  47.     } else { // aktuální strana
  48.         echo "<a href='?str=".$i."'><b>".$i."</b></a>&nbsp;";
  49.     }
  50.  }
  51.  
  52.  echo "<a href='?str=" .(($str <$pocet) ? $str + 1 : $pocet) ."'>&raquo;</a>" .
  53.       "</div>";
  54. ?>

Doufám, že článek někomu pomůže.