i s m a i l p e r i m . n e t
js, ajax, php, mysql, c#
js, ajax, php, mysql, c#
Haz 12th
bir zamanlar yazmış olduğum dağınık sayfalama fonksiyonunu toparlayıp class haline getirdim.
Class :
<?php //////////////////////////////////////////////////// // // Code By İsmail Perim // http://www.ismailperim.net // <ismailperim@gmail.com> // // 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 ####################### } } ?>
Örnek Kullanım :
//////////////////////////////////////////////////// // // Code By İsmail Perim // http://www.ismailperim.net // <ismailperim@gmail.com> // // 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 ... # } ?>