PHP Sayfalama Sınıfı
Gerek sql ile, gerekse explode ile bölerek kullanabilmek için az önce yazdığım, basit ama kullanışlı bir sınıf. Kolayca düzenleyip, istediğiniz yerde kullanabilirsiniz.
Sınıfı BURADAN indirebilirsiniz. Kullanım için örnek verecek olursak
PHP kodu
$sorgu=
mysql_query("SELECT count(id) as sayi FROM makale",
$baglanti);
require_once('ek/class-sayfalama.php');
$sayfalama= new sayfalama();
$sayfalama->sayfa=& $_GET['sayfa'];
$sayfalama->toplam=$db['sayi'];
$sayfalama->sayfa_basina=$sitebilgi['sayfa_tane'];
$sayfalama->url='index.php?sayfa=%d';
$sayfalama->degisken='sayfa';
$sayfalama->hazirla();
$sorgu=$vt->sorgu("SELECT baslik,girismetni
FROM makale ORDER BY id DESC LIMIT ".$sayfalama->baslangic.",".$sayfalama->sayfa_basina);
while (............) { ....... }
echo $sayfalama->
sayfala();
şeklinde veritabanından aldığınız bilgileri sayfalayabilri veya
PHP kodu
$sayfalar=
explode('<!-- pagebreak -->',
$metin);
require_once('ek/class-sayfalama.php');
$sayfalama= new sayfalama;
$sayfalama->sayfa=& $_GET['sayfa'];
$sayfalama->
toplam=
count($sayfalar);
$sayfalama->sayfa_basina=1;
$sayfalama->url='makale/dunyayi-kurtaran-adam/%d/';
$sayfalama->hazirla();
$metin=$sayfalar[$sayfalama->baslangic];
....
echo $sayfalama->
sayfala();
ile konu içinde de sayfalama yapabilrisiniz.
Bu sınıfın kodları da şu şekilde
PHP kodu
<?php
/*
yazar: Gündüz Can YILMAZ
Açıklama: sayfa sayısı, sayfa başına gösterilecek adet gibi ayarlardan sonra sizin için
*/
class sayfalama {
public $toplam;
public $sayfa_basina;
public $sayfa_sayisi;
public $url;
public $baslangic;
public $ilerigeri;
public $ilkson;
public $sayfa;
private $set;
-
function __construct() {
$this->sayfa_basina=10;
$this->baslangic='0,10';
$this->ilerigeri=true;
$this->ilkson=true;
$this->sayfa=1;
$this->set=false;
}
-
function hazirla() {
$this->sayfa=$this->sayfa < 1 ? 1 :$this->sayfa;
$this->
sayfa_sayisi=
ceil($this->
toplam/
$this->
sayfa_basina);
$this->baslangic=(($this->sayfa-1)*$this->sayfa_basina);
$this->set=true;
}
}
-
function sayfala() {
if($this->set==false) $this->hazirla();
-
$ilk_sayfa=$this->sayfa-5;
$son_sayfa=$this->sayfa+5;
if($this->ilkson==true){
$ilk_link='<a class="ilkson" href="'.$this->link(1).'"> <<< </a>';
$son_link='<a class="ilkson" href="'.$this->link($this->sayfa_sayisi).'"> >>> </a>';
} else $ilk_link=$son_link='';
-
if($ilk_sayfa <=1 ){$ilk_sayfa=1;$ilk_link='';}
if($son_sayfa >= $this->sayfa_sayisi ){$son_sayfa=$this->sayfa_sayisi;$son_link=' ';}
-
$sayfalar='<!-- sayfalama başlangıç --><p class="sayfalama">';
$sayfalar.=$ilk_link;
for($i=$ilk_sayfa;$i<=$son_sayfa;$i++){
$class= ($this->sayfa==$i) ? 'aktif_sayfa' : 'pasif_sayfa';
$sayfalar.='<a class="'.$class.'" href="'.$this->link($i).'" title="'.$i.'. Sayfa"> '.$i.' </a>';
}
$sayfalar.=$son_link;
$sayfalar.='<!-- sayfalama bitiş -->';
return $sayfalar;
}
}
?>
Bu sınıf için kullandığım css kodları ise şu şekilde
CSS kodu
.sayfalama {
float:right;
padding:5px;
}
.sayfalama a {
font-size:14px;
font-weight:bold;
color:#fff;
padding: 5px 5px 5px 5px;
margin: 0 1px 0 1px;
border: 2px solid #262626;
}
a.aktif_sayfa { background:#8AC800; }
a.pasif_sayfa { background:#DD6611; }
PHP Sayfalama Sınıfı
Oy Sayısı: 48
Puan: 7.69/
10.00
Etiketler
php sayfalama ,
php sayfalama class ,
php sayfalama sinifi ,
sayfalama php ,
sayfalama class ,
sayfalama css ,
php de sayfalama ,
php ile sayfalama ,
sayfalama ,
php sayfa class ,
irfan evrens02 Mart 2010 Salı 15:30:04
yazdığınız sınıfın içerisinde kod aralarında yorum satırları ile olayları anlatırsanız daha faydalı olacaktır
Mürsel Türk09 Mayıs 2010 Pazar 01:00:05
Warning: Division by zero in C:AppServwwwmultimedyaekclass.php on line 28
Hatası veriyor neden acaba :S
Gündüz Can YILMAZ09 Mayıs 2010 Pazar 16:11:27
Sayın Mürsel, sayfalama yaparken
$sayfalama->sayfa_basina=10;
yerine
$sayfalama->sayfa_basina=0;
yazmış olabilir misiniz? Bu değişken her sayfada göstereilecek adedi belirliyor, sanırım siz bir şekilde sıfır atadınız o kısma
Mürsel Türk09 Mayıs 2010 Pazar 18:20:02
:S Hayır aynen siteden aldığım şekilde duruyor kontrol ettim
Mürsel Türk09 Mayıs 2010 Pazar 19:01:23
tamamdır o hatayı hallettim ama sayfalama gözükmüyor sayfa numaraları :S
Gündüz Can YILMAZ10 Mayıs 2010 Pazartesi 05:15:18
echo $sayfalama->sayfala();
satırı sayfa numaralarını göstermesi gereken satır. Tek sayfa da olsa gösteriyor. Sanıyorum orada da bir aksaklık yaşamışsınız. Kodlarda problem yok kullandğım hali ile yazdım. Dilerseniz, canyilmaz84 gmail, mailime kullandğınız hali ile atabilirsiniz. Sorunu çözmeye çalışırım
Mürsel Türk10 Mayıs 2010 Pazartesi 07:41:38
Tamamdır çözdüm sorunu. Gözümden kaçmış ufak tefek şeyler. Çok kullanışlı çok teşekkürler. Ayrıca ilgilendiğiniz içinde çok teşekkür ederim :)
Gündüz Can YILMAZ10 Mayıs 2010 Pazartesi 16:11:57
Rica ederim, sorun kalmadığına inanın çok sevindim
mustafa özsarıoğlu28 Mayıs 2010 Cuma 12:18:20
hocam bu sayfalamayı bir türlü yapamadım vallaha billaha kanser oldum. SQL sorgusunu ve echo yazdırma kodlarımı versem siz sorguyu bu kodlara göre nasıl yapacağımı anlatırmısınız. ücretli destek veriyorsanız onada razıyım vallayi uykularım kaçıyor artık.
Gündüz Can YILMAZ28 Mayıs 2010 Cuma 14:27:00
Mustafa Bey, gönderdiğiniz kodları düzenleyip mailinize attım. Umarım sorun kalmamıştır. İyi çalışmalar
Mehmet Köse03 Nisan 2011 Pazar 07:46:16
sınıfı biraz inceleme şansım oldu, bunu açık kaynaklı bir projede kullanmak isterim, katılıp destek olmak isterseniz de mutlu olurum, teşekkürler.
http://domates.org/
Gündüz Can YILMAZ05 Nisan 2011 Salı 04:05:39
Çok isterim tabi ki yalnız kpss sınavına hazırlanmayı düşünüyorum, bir kaç iş teslimimden sonra 3 aylık bir zaman diliminde online olmayı dahi düşünmüyorum :(
aaaaa28 Mayıs 2011 Cumartesi 15:31:26
proje odevım icin sayflandırmayı cok acil yapmam gerekıyor salı gunu projeyı teslım edecegım bırı yardım edeıblırmı melih_oztrk@hotmail.com
Gündüz Can YILMAZ01 Haziran 2011 Çarşamba 12:43:04
Malesef salı gününü geçmişiz yeni gördüm yorumu. Zaten yukarıdaki kodları eklediğinizde otomatik çalışıyordu, umarım halletmişsinizdir.