bu tablomda çok sayıda veri var ve liste uzadıkça uzuyor liste uzadıkçada listeleme yapan sayfada ağırlaşıyor. bu tablodan galan verileri her sayfasında 20 satır olacak şekilde listelemek istiyorum. R10 PHP Kütüphanesinin son sayfasında ismailperim nickli arkadaşın hazırlayıp paylaşıma sunduğu aşağıdaki kodlarla istediğim şeyi yaklaşık 2 gün yapmak için uğraştım ama işin içinden bir türlü çıkamayıp son çare olarak konu açmaya karar verdim ustalarımdan konuyla ilgili yardım rica ediyorum. cevap yazarak yardımcı olan veya öneride bulunan arkadaşlarada şimdiden teşekkür ederim...
sayfalama.php
<?php
////////////////////////////////////////////////////
//
// Code By İsmail Perim
// Dosya : /sayfalama.php
// Açıklama : Sayfalandırma Sınıfı
//
////////////////////////////////////////////////////
class Sayfalama
{
public $KayitSayisi = 10;
public $Sorgu = "";
public $ToplamKayit = "";
public $Linkler = "";
public $Sayfa = "";
public function Sayfalama($_Sorgu,$_TopKay,$_Sayfa,$_KayitSayisi=10)
{
$this->KayitSayisi = $_KayitSayisi;
$this->Sorgu = $_Sorgu ;
$this->ToplamKayit = $_TopKay;
$this->Sayfa = $_Sayfa;
}
public function Olustur()
{
$adet=15;
if($_GET['sayfa']==0)
{
$_GET['sayfa']=1;
$sayfa=0;
$kayit=0;
}
elseif($_GET['sayfa']==1)
{
$sayfa=0;
$kayit=0;
}
else
{
$sayfa=$_GET['sayfa'];
$kayit=($sayfa*$adet-$adet);
}
$sorgu_temp = $this->Sorgu." LIMIT $kayit,$adet ";
$this->Sorgu=mysql_query($sorgu_temp);
####################### LİNKLER #######################
$sonraki=$_GET['sayfa']+1;
$onceki=$_GET['sayfa']-1;
if($onceki>0)
{
$this->Linkler.='<a href="?'.$this->Sayfa.'sayfa='.$onceki.' " style="text-decoration:none;"> [ Önceki ] </a>';
}
$say=$this->ToplamKayit;
$link=ceil($say/$adet);
$nokta=0;
$nokta1=0;
for($i=1;$i<$link+1;$i++)
{
if($i<$sayfa+6 && $i>$sayfa-6)
{
if((int)$sayfa==$i)
{
$this->Linkler.='<b>';
}
$this->Linkler.='<a href="'.$this->Sayfa.'sayfa='.$i.'" style="text-decoration:none;"> ['.$i.'] </a>';
if((int)$sayfa==$i)
{
$this->Linkler.='</b>';
}
}
else
{
if( $i<$sayfa+6 && $nokta== 0)
{
$this->Linkler.= '<a href="'.$this->Sayfa.'sayfa='.($sayfa-5).' " style="text-decoration:none;"> [ ... ] </a>';
$nokta = 1;
}
if( $i>$sayfa-6 && $nokta1== 0)
{
$this->Linkler.= '<a href="'.$this->Sayfa.'sayfa='.($sayfa+5).' " style="text-decoration:none;"> [ ... ] </a>';
$nokta1 = 1;
}
}
}
if($sonraki<$link+1)
{
$this->Linkler.='<a href="'.$this->Sayfa.'sayfa='.$sonraki.' " style="text-decoration:none;"> [ Sonraki ] </a>';
}
####################### / LİNKLER #######################
}
}
?>sayfalama_ornek.php<?php
////////////////////////////////////////////////////
//
// Code By İsmail Perim
// Dosya : /sayfalama_ornek.php
// Açıklama : Sayfalandırma Sınıfı Örneği
//
////////////////////////////////////////////////////
# Sayfalama Sınıfımızı Ekliyoruz
include_once "sayfalama.php";
# MySQL Bağlantılarını Yaptığımız Sayfamız
include_once "baglanti.php";
# Toplam Kayıt Sayısını Alıyoruz.
$KayitSayisi = mysql_num_rows(mysql_query("SELECT * FROM Tablo"));
#Bir Sayfada Gösterilecek Kayıt Sayısı
$KacKayit = 15;
# Yeni Bir Sayfalama Sınıfı Türetiyoruz
$Sayfa = new Sayfalama("SELECT * FROM Tablo ",$KayitSayisi,"index.php?Islem=KayitListe&",$KacKayit);
# Sınıfımız Gerekli İşlemleri Yaparak Sorguları Sayfalandırmaya Uygun Hale Getiriyor
$Sayfa->Olustur();
# Oluşan Sayfa Linklerini Ekrana Bastırıyoruz
echo $Sayfa->Linkler;
# Sayfalandırma Sonucu Uygun Hale Getirilen Sorgumuzu İşlemlerimiz İçin Kullanıyoruz.
while($Veri = mysql_fetch_array($Sayfa->Sorgu))
{
#... İşlemlerimiz ... #
}
?>NOT: Aşağıdaki kodlar R10 ismailperim nickli üyenin paylaşıma sunduğu kodlardan alıntı yapılmıştır...