14 Ekim 2008

PHP sayfalama örneği

Sitenizde bir tabloya ait kayıtların listesini göstermek istediğinizde çoğunlukla sayfalama işlemi yapmanız gerekir. Aşağıda bunun için yazılmış basit bir örnek olarak "liste" tablosundaki kayıtları sayfalandırma işlemi yaparak listeleyen bir örnek bulabilirsiniz:


[php]
$p=intval($_GET['p']); //sayfa parametresi

$toplam_sayfa = 1;
$n = 5; // bir sayfada listelenecek kayıt sayısı
$toplam=0;
$basla = 0;

$db->query("SELECT COUNT(*) as x FROM `liste` ");
if($db->fetch_data()){
$toplam = $db->data['x'];
}

$toplam_sayfa = ceil( $toplam/$n );
$basla = ($p-1)*$n;

$db->query("SELECT * FROM `liste` LIMIT {$basla},{$n}");
while($db->fetch_data()){
// satır gösterilecek bölüm ...
}

//sayfa numaraları bölümü
for($i=1;$i<=$toplam_sayfa;$i++){
echo ($p==$i)?"{$i} ":"{$i} ";
}
[/php]

Örneğimizde ilk önce sayfa parametresini $p değişkenine kaydediyoruz. (Aslında sayfa numarasını bu şekilde belirlemek yerine parametre yoksa yada pozitif tamsayı bir değer değilse sayfa numarasını 1 kabul etmek gerekir.) Daha sonra listemizdeki toplam kayıt sayısını belirliyoruz (8-11). Burada kullanılan $db daha önceden tanımlanmış bir veritabanı sınıfı nesnesidir. 13.satırda toplam sayfa sayısını belirleyip sayfamızdaki ilk satırın tablodaki sırasını belirliyoruz (13-14). Bundan sonra satırlarımızı bir döngü içinde listeleyip (16-19) ardından tüm sayfalar için sayfa numarası bağlantılarını oluşturuyoruz. Mevcut sayfaya ait sayfa noyu sabit sayı olarak diğerlerini bağlantı olarak yazıyoruz.

Sayfalama işlemi temelde bu örnekteki mantığa dayanır. Önemli olan bir sayfada kaç kayıt gösterileceğini belirleyip istenilen sayfa için başlangıç indisini hesaplamaktır. Sorgudaki LIMIT a,b için a değeri ilk satırın indisini, b ise bu kayıttan itibaren kaç kayıt alınacağını belirlemek için kullanılır.

Hiç yorum yok:

Kripto paralar hakkında

Kripto paralar, merkezi olmayan, şifrelenmiş ve dağıtılmış bir veritabanı olan blok zinciri teknolojisi kullanılarak oluşturulan dijital par...