Umarım açıklayıcı olmuştur :)
int listelenecekAdet= 10; // Örnek 10 verdik dilerseniz bazı sitelerdeki gibi bu bilgiyi dropdowndan doldurarak 10, 20, 50 gibi çoklu kayıtları listeleme seçeneğini kullanıcıya sunabilirsiniz
int kayitSayisi = [dbdeki kayıt adedini çekiyoruz(SELECT Count(id) FROM tablom WHERE aktif_mi=1)]; //aktif filtresi sadece örnek olması açısından
if (isset($_GET['page']))
$MEV_SAYFA=($_GET['page']);
else
$MEV_SAYFA=1;
$limitBaslangic=abs(($MEV_SAYFA-1)*$listelenecekKayitAdedi ); //dbdeki kaçıncı kayıttan başlayacağımız
var sayfadaGosterilecekKayitlar = [dbde gosterilecek kayıtları çekiyoruz(SELECT kolon1, kolont2... FROM tablom ORDER BY kayitYaratmaTarihi DESC LIMIT $limitBaslangic, $listelenecekAdet //dbdeki başlangıç kayıdından sayfada listelenecek adet kadar kayit gostermeyi sağlar
while ($row=mysql_fetch_array($sayfadaGosterilecekKayitlar ))
$gelenVeriler[++$limitBaslangic]=$satir;
//hiç query string olmadan sayfa url'ini alalım
$uri=strtok($_SERVER['REQUEST_URI'],"?")."?";
//sayfadaki page query string olmadan diğer query stringlerin bulunduğu şekilde urlmizi oluşturalım
if (isset($_GET['page']))
unset($_GET['page']);
if (count($_GET)) {
foreach ($_GET as $k => $v) {
if ($k != "page")
$uri.=urlencode($k)."=".urlencode($v)."&";
}
}
//toplam kaç sayfa olacağını hesaplayıp bir arrayi page querystringli linklerimiz ile dolduralım
$sayfaAdedi=ceil($kayitSayisi /$listelenecekAdet);
for($i=1;$i<=$sayfaAdedi;$i++)
$Sayfalar[$i]=$uri.'page='.$i;
//aşağıdaki gibi basit bir şablon ile verilerimizi ve sayfa numaralarını ekrana basabilriz
?>
Toplam kayıt sayısı: =$kayitSayisi?>
foreach ($gelenVeriler as $i => $satir): ?>
=$i?>. =$satir['title']?>
endforeach ?>
Sayfalar:
foreach ($Sayfalaras $i => $link): ?>
if ($i == $MEV_SAYFA): ?>
=$i?>
else: ?>
=$i?>
endif ?>
endforeach ?>