Php İle Sayfalamaya Çok Güzel Bir Örnek isimli bir konumuz vardı.
Buna ek olarak yeni bir şeklini daha yayınlayalım. Class'ımız gene aynıdır. O sayfadan indirebilirsiniz.
Ekran görüntüsü aşağıdaki gibidir.
Buna ek olarak yeni bir şeklini daha yayınlayalım. Class'ımız gene aynıdır. O sayfadan indirebilirsiniz.
Ekran görüntüsü aşağıdaki gibidir.
PHP:
<?php
class page
{
var $kac_sayfa = 3; // sayfalama da mevcut sayfadan önce ve sonrasında kaç bağlantı gösterileceği.
var $title = 'sayfalar'; // Sayılar üzerine gelecek olan title.
var $title_sonraki_sayfa = 'Sonraki sayfa'; // sonraki sayfa bağlantısı için title.
var $title_onceki_sayfa = 'Önceki sayfa'; // önceki sayfa bağlantısı için title.
var $title_ilk_sayfa = 'İlk sayfa'; // ilk sayfa bağlantısı için title.
var $title_son_sayfa = 'Son sayfa'; // son sayfa bağlantısı için title.
var $site = 'http://localhost/site/'; // site adresimiz. sonunda slash olmalı
var $bolum1 = 'index.php?sayfa='; // sayı linklerinde sayıdan önce gelmesi istenilen alan.
var $bolum2 = ''; // sayıdan sonra gelmesi istenilen bölüm
/* $tablo_name = sonuçlarını sayılacağı tablo adı
* $osullar = veritabaında sayılacak olan verinin koşulları
* $limit = bir sayfada gösterilecek olan sonuç listesi
*/
function sayfala($tablo_name,$kosullar,$limit)
{
$toplam = "select COUNT(*) as num from $tablo_name $kosullar";
$toplam = mysql_fetch_array(mysql_query($toplam));
$toplam_sayfa = $toplam[num];
$sayfa_sayisi = ceil($toplam_sayfa / $limit); // içerik sayısını limite bölerek kaç sayfa olduğunu belirliyoruz.
// sayfa oluşturacak içerik yok ise
if ($toplam_sayfa == 0 OR $sayfa_sayisi == 1)
{
return ;
}
// eğer oluşturacak sayfa varsa
else
{
$pagenation = '<div class="pagination">';
$sayfa = ($_GET['sayfa']);
if ($sayfa == "") { $sayfa = 0; }
// İlk sayfaya git linki için
if ( $sayfa_sayisi > 1 )
{
// ilk sayfada ise linki kaldırıyoruz.
if ($sayfa <= 1)
{
$pagenation .= '<span class="disabled">'.$this->title_ilk_sayfa.'</span>';
}
// ilk sayfada değilse linki ekliyoruz.
else
{
$pagenation .= '<a href="'.$this->site.''.$this->bolum1.'1" title="'.$this->title_ilk_sayfa.'">'.$this->title_ilk_sayfa.'</a>';
}
// önceki sayfa yapısını oluşturuyoruz.
// önceki sayfa linkini 1'den büyük sayfalar için oluşturuyoruz
if ($sayfa > 1)
{
$pagenation .= '<a href="'.$this->site.''.$this->bolum1.''.($sayfa-1).'" title="'.$this->title_onceki_sayfa.'">'.$this->title_onceki_sayfa.'</a>';
}
// öncekisi olamayacak olan sayfa
else
{
$pagenation .= '<span class="disabled">'.$this->title_onceki_sayfa.'</span>';
}
// sayıları oluşturuyoruz.
for ( $sayac = ($sayfa - $this->kac_sayfa); $sayac <= ($sayfa + $this->kac_sayfa) ; $sayac++ )
{
// sayfa sayısı 1'den küçük ise ve sayfa sayısından büyük ise göstermiyoruz.
if ( $sayac < 1 or $sayac > $sayfa_sayisi )
{
}
else
{
// mevcut sayfadaki sayfalama bağlantısına link vermiyoruz.
if ($sayac == $sayfa)
{
$pagenation .= '<span class="disabled">'.$sayac.'</span>';
}
// diğerlerine o sayfanda link veriyoruz.
else
{
$pagenation .= '<span><a href="'.$this->site.''.$this->bolum1.''.$sayac.'" title="'.$this->title.'">'.$sayac.'</a></span>';
}
}
}
// sonraki sayfa bağlantısını ayarlıyoruz.
if ($sayfa < $sayfa_sayisi and $sayfa > 0)
{
$pagenation .= '<span><a href="'.$this->site.''.$this->bolum1.''.($sayfa+1).'" title="'.$this->title_sonraki_sayfa.'">'.$this->title_sonraki_sayfa.'</a></span>';
$pagenation .= '<span><a href="'.$this->site.''.$this->bolum1.''.$sayfa_sayisi.'" title="'.$this->title_son_sayfa.'">'.$this->title_son_sayfa.'</a></span>';
}
else
{
$pagenation .= '<span class="disabled">'.$this->title_sonraki_sayfa.'</span>';
$pagenation .= '<span class="disabled">'.$this->title_son_sayfa.'</span>';
}
}
$pagenation .= '</div>';
}
return $pagenation;
}
}
?>