Php ile Sayfalama

 bcakir
 30 Eylül 2011

Merhaba arkadaşlar bu yazımda Php ile sayfalama yapımını anlatacağım. Bu uygulama ile sayfalama yapmanın temel mantığını öğrenmiş olacaksınız. Uygulamamız bütün yazıları sayfa sayfa gösterecek. Bunun yanında da ilk ve son sayfaya gitme bağlantımız olacak. Uygulamamız temel sayfalama mantığını içerecek ama siz isterseniz biraz daha da geliştirebilirsiniz. Uygulamamız için MySQL veri tabanı kullanacağız. MySQL veritabanına bağlanma işlemini daha önceki yazımda anlatmıştım. Ayrıca MySQL tasarım kodlarını değil, tasarımı ve içindeki bilgileri içeren sql dosyasını sizlerle paylaşacağım. Bu uygulamamızın çalışması için veritabanı bağlantı betiğine ve veritabanının sql dosyasına ihtiyacınız olduğundan dolayı uygulamanın bütün dosyalarını içeren çalışır halinin bağlantısını yazının sonunda bulabilirsiniz.

<?php
//veritabanı bağlantısı betiği
include("baglanti.php");
//kaç tane gösterileceğini girin
$gosterim=3;
//gösterilecek sayfa numarasını alma
$sayfa=@$_GET['sayfa'];
//sayfa numarası kontrolü
if(empty($sayfa) || !is_numeric($sayfa)){$sayfa=1;}

//toplam kayıt sayısını alma
$k_sayisi=mysql_num_rows(mysql_query("Select id From yazilar"));
//kaç sayfa olacağını bulma
$s_sayisi=ceil($k_sayisi/$gosterim);
//hangi kayıttan itibaren gösterileceğini bulma
$ilk_kayit=($sayfa*$gosterim)-$gosterim;

//kayıtları listeleme işlemi
$al=mysql_query("Select id, yazi, yazari From yazilar Order By id Desc Limit $ilk_kayit,$gosterim");
while($yazdir=mysql_fetch_array($al)){
    //değerleri değişken yapma
    extract($yazdir);
    echo "<div style='border: 2px solid #bbb'><strong>Yazı:</strong> ".$yazi;
    echo "<br /><strong>Yazarı:</strong> ".$yazari."</div>";
}

//ilk sayfaya gitme bağlantısı
if($sayfa!=1){
    echo "<a href='index.php?sayfa=1'>İlk</a>";
    echo " ";
}
//diğer sayfalara geçiş bağlantısı koyma
for($i=1;$i<=$s_sayisi;$i++){
    echo "<a href='index.php?sayfa={$i}'>$i</a>";
    echo " ";
}
//en son sayfaya gitme bağlantısı
if($sayfa!=$s_sayisi){
    echo "<a href='index.php?sayfa={$s_sayisi}'>Son</a>";
}

//veritabanı bağlantısını kapatma
mysql_close();
?>

Uygulamamızın bütün adımlarının açıklamasını yukarıda bulabilirsiniz. Uygulamayı çalıştırabilmek için; bir tane MySQL veritabanı oluşturup (ben bcakir olarak adlandırmıştım) paylaştığım sql dosyasını içerisine aktarmanız yeterli olacaktır. Eğer isim değişikliği yaparsanız da uygun yeri düzeltmeyi unutmayın. Uygulamanın çalışır halini buradan indirebilirsiniz. Uygulamamızın çalışması için gerekli noktaları da açıklayarak bir yazının daha sonuna gelmiş olduk. Yararlı olması dileğiyle.

 3.212 Okunma

Bu yazıya 3 yorum yapılmış.

  1. Hocam benim bu sayfalama işlemini daha önce yapmıştım ben gayet düzgün çalışıyor. takıldığım bir yer var. mesela ilanlar.php sayfası içerisinde ilanlar.php?sayfa=1 şeklinde sayfalama yapabiliyorum ama benim sayfalama yapmak istediğim sayfa kategori_id’ye bağlı olarak listeleniyor. Yani ilanlar.php?kategori_id=3 şeklinde kategori ilan nuımarası 3 olanları lisleliyorum. ama listelenen ilanlarda sayfalama yapamadım kategori_id yüzünde nasıl bir şekil yapabilirim.

  2. Merhaba hocam çok güzel bir yazı olmu emeğinize sağlık ama mesala veritabanında 1000 adet veri varsa aşağıda 500 tane sayfa olacak
    İlk Sayfa . . . .10 11 12 13 14 15 16 . . . .Son Sayfa
    Böyle olması için ne yapmalıyız
    Yardım ederseniz çok Teşekkür Ederim

  3. Hocam, Allah senden razı olsun, baktıklarım hep karışıktı sisteme entegre etmek zordu senin yaptığın baya anlaşılır ve kolay. İyi çalışmalar.

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla MySQL, Php
Kapat