i s m a i l p e r i m . n e t
js, ajax, php, mysql, c#
js, ajax, php, mysql, c#
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 ... # } ?>
15 Kasım 2009 - 11:28
önceikle merhabalar…program çok güzel olmuÅŸ…da biÅŸiyi anlayamadım..iÅŸlemlerimiz demek le ne analtmak istediniz…söyleyebilir misiniz…teÅŸekürler…
15 Kasım 2009 - 12:35
Merhabalar,
Sayfalama sınıfının altındaki örnekte “iÅŸlemleriniz” diye belirttiÄŸim kısımda, örneÄŸin veritabanından gelen bir tabloyu ekrana yazdıracaksanız bu alanda ekrana yazdırma iÅŸlemleri gibi iÅŸlemleri yapan kodları yazmanız gerekiyor.
18 Åžubat 2010 - 01:26
Sayın İsmail Perim Burdaki Kodlarda Eksiklikler Var Siz Baglantı.php Cekmisiniz Ama Onu Vermemissiniz Onuda Eklerseniz Tam Çalışır Duruma Gelir Bunda Hata Veriyor.
18 Åžubat 2010 - 17:52
Merhabalar,
Baglanti.php dosyasını, sizin tarafınızdan oluşturulmuş MySQL Veritabanı bağlantı işlemlerini içeren sayfayı temsilen örnekte gösterdim. Bu sayfa içinde sizin veritabınız ile uygulamanız arasında bağlantıyı sağlayan kodların bulunması gerekiyor.
Projelerimde kullandığım örnek bir bağlantı sayfası : Baglanti.php
19 Åžubat 2010 - 17:39
İyi günler.AÅŸağıdaki kodlarla popüler 100 dosyayı gösteriyorum.Ve en popüler dosyaları 20 sayfa ÅŸeklinde sayfalamak istiyorum yardımcı olursanız sevinirim…
= $gb){
$mysizes = sprintf (“%01.2f”,$served/$gb) . ” Gb “;
} elseif ($served >= $mb) {
$mysizes = sprintf (“%01.2f”,$served/$mb) . ” Mb “;
} elseif ($served >= $kb) {
$mysizes = sprintf (“%01.2f”,$served/$kb) . ” Kb “;
} else{
$mysizes = $served . ” B “;
}
$content .= “ $totalfiles: $files $totalcategories: $cats $totaldownloads: $total_hits İndirilen Veri: $mysizes“;
if ($usemarquee == 1) {
$content .= “”;
}
// Lets show the most downloaded files, Probably the porn ones i reckon, hahahahahahaha
$content .= ““.$most.”“;
$a = 1;
$result = mysql_query( “SELECT id, name, downloads FROM mkp_download WHERE validate = ‘1′ ORDER BY `downloads` DESC LIMIT $downloadstoshow”);
while(list($id, $name, $downloads) = mysql_fetch_row($result)) {
$title2 = ereg_replace(“_”, ” “, $name);
$content .= “ $a- siteurl/index.php?ind=downloads&op=entry_view&iden=$id$title\”>$title2 : ($downloads) “;
$a++;
}
unset($maxshow);
unset($mysql_query);
unset($id);
unset($name);
unset($downloads);
?>