Blog zamarł na dłuższą chwilę ze względu na wiele projektów i pomysłów jakie wpadły mi do głowy i musiałem wdrożyć. Praktycznie w każdym używałem gdzieś podziału na strony, a to wpisów dodawanych przez użytkowników a to czegoś innego. Stronicowanie jest bardzo łatwo wykonać w php. Skypcik jest bardzo prosty, pisałem go niecałą godzinkę, mam nadzieję że przyda się Wam i zaoszczędzicie trochę czasu.

Muszę dodać, że jest to tylko podział na strony a nie wyświetlanie treści. Czyli np. mając do wyświetlenia 47 elementów i ustawieniu 5 na 1 stronę, to skrypt wyświetli Strony: 1 2 3 aż do 10.

No to zaczynamy. Załóżmy, że mamy księgę gości i 47 wpisów (oczywiście tu podałem na sztywno, w rzeczywistości musisz pobierać tę liczbę dynamicznie).


<?php
//przesyłamy metodą GET nr strony na której aktualnie jesteśmy
$strona = $_GET['strona'];
//ile mamy wpisów do podziału na strony
$wsumie = 47;
// ile wpisów na 1 stronie
$nastronie = 5;
$x = 1;
$do = ceil($wsumie/$nastronie);
$y = intval($strona);
while($x <= $do)
{
$przedzialod = (($x-1)*$nastronie)+1;
$przedzialdo = $x *$nastronie;
if($przedzialdo > $wsumie)
{
$przedzialdo = $wsumie;
}
//wyświetlamy stronę na której jesteśmy
if($y == $x)
{
echo '<span title="Wpisy od '.$przedzialod.' do '.$przedzialdo.'">'.$x.'</span>'."\n";
}
else
{
//wyświetlamy pozostałe numery stron i linki do nich
if($x == '1'){
echo '<a href="../ksiega.html" title="Wpisy od '.$przedzialod.' do '.$przedzialdo.'">'.$x.'</a>'."\n";
}else{
echo '<a href="../ksiega-'.$x.'.html" title="Wpisy od '.$przedzialod.' do '.$przedzialdo.'">'.$x.'</a>'."\n";
}
}
$x++;
}
?>



Warto zauważyć, że strona 1 ma adres mojastrona.pl/ksiega.html a nie mojastrona.pl/ksiega-1.html – myślę że tak jest ładniej. Oczywiście aby wszystko działało należy dodać odpowiednie zapisy w pliku .htaccess, w nasym przypadku plik ten powinien wyglądać tak:

RewriteEngine On
RewriteRule ^ksiega-([^-]+).html$ ksiega.php&strona=$1 [L]
RewriteRule ^ksiega.html$ ksiega.php&strona=1 [L]

Jeżeli chodzi o treść to zależy czy pobierasz ją z bazy czy z pliku. Jeżeli z bazy to po prostu używasz operatora LIMIT i wyświetlasz w zależności od strony odpowiednie rekordy. Powodzenia! W razie wątpliwości zostaw komentarz ;)