Veri tabanımızda bulunan haberleri 15 ‘er 15’er sayfalarda göstererek örneğimize başlıyoruz. İlk olarak veri tabanımıza bağlanım haber tablomuzdaki haber sayısını ögreniyoruz.
< ?php require_once("mysql.php"); $qh_sayisi="SELECT COUNT(id) FROM haber"; $res_h_sayisi=$dba->query($qh_sayisi); $row_h=$dba->fetch_assoc($res_h_sayisi); $haber_sayisi=$row_h['COUNT(id)'];<span id="more-268"></span> $kacar=15; $s_sayisi=(floor($s_sayisi=$haber_sayisi/$kacar)); $kalan=$haber_sayisi%$kacar; if ($kalan==0){ // paga sayfa sayısını belirledik $s_sayisi; }else if($kalan!=0){ $s_sayisi=$s_sayisi+1; } ?>
Yukarıdaki kodlar ile “$haber_sayisi=$row_h[‘COUNT(id)’];” ile haber sayısınıhaber_sayısı değişkenine bildirdik. $kacar=15; ile her sayfada kaç adet kayıtın gösterileceğini belirlemiş olduk.
$kalan=$haber_sayisi%$kacar;
if ($kalan==0){ // paga sayfa sayısını belirledik
$s_sayisi;
}else if($kalan!=0){
$s_sayisi=$s_sayisi+1;
}
Bu kodlar ilede kaç sayfanın yer alacagını belirledik. Kalan bir sayı varsa örneğin 15 li sayfalama sisteminde 16 adet kayıt varsa 2 sayfa göstercek.Kalan bir sayı yoksa direk o sayıyı atıyacak örneğin 15 ‘li sayfalama sisteminde 45 adet kayıt varsa 3 gibi.
Aşağıdaki kodlar ilede hafızaya aldığımız sayfa sayısını ekrana yazdırıyoruz.
< ?php for ($i=1; $i<=$s_sayisi; $i++) { echo "<a href=haber.php?page=$i>$i "; } ?>
Son olarakda sayfamız açıldıgında verilerin gösterilmesi kalıyor. Bu gösterme işlemini aşagıdaki kodlar ile yapabiliyoruz.
< ?php if (empty($_GET['page'])){ $q1="select * from haber order by id desc LIMIT 15"; // page değeri boş ilen son eklenen 15 kayıtın gelmesini sağladık }else if (isset($_GET['page'])){ $nerden=($_GET['page']*$kacar)-$kacar; $q1="select * from haber order by id desc LIMIT $nerden,$kacar";//page değerine bağlı olarak 15 kayıtın gelmesini sağladık. } $res1=$dba->query($q1); while($row=$dba->fetch_assoc($res1)){ $header=$row['header']; $icerigi=substr($row['icerigi'],0,530); $image=$row['image']; $id=$row['id']; ?> <div class="templatemo_section_1"> <h2 align="left">< ?=$header?></h2> <p> < ?php if (empty($image)){ ?> <img src="admin/images/xampp_stop.png" width="125" height="70" border="2" align="top" /> < ?php }else if (isset($image)){ ?> <a href="admin/images/<?=$image?>" rel="lightbox"><img src="admin/images/<?=$image?/>" width="125" height="70" alt="" /></a> < ?php } ?> < ?=$icerigi?><br /> <a href="haber.php?haber=<?=$id?>">DEVAMI</a> </p> <div class="templatemo_line"></div> </div> < ?php }if (isset($_GET['haber'])){ echo $_GET['haber']; } }else if (isset($_GET['haber'])){ $id=$_GET['haber']; $query="select * from haber where id='$id' LIMIT 1 "; $result=$dba->query($query); $row_ht=$dba->fetch_assoc($result); $id=$row_ht['id']; $header=$row_ht['header']; $icerigi=$row_ht['icerigi']; $image=$row_ht['image']; ?> <div class="templatemo_section_1_h"> <h1><center>< ?=$header?></center></h1> < ?php if (empty($image)){ ?> <img src="admin/images/xampp_stop.png" width="160" height="200" border="1" /> < ?php }else if (isset($image)){ ?> <a href="admin/images/<?=$image?>" rel="lightbox"> <img src="admin/images/<?=$image?/>" width="160" height="200" border="1" /></a> < ?php } ?> <p>o <b>< ?=$icerigi?></b> </p> <p> <a href="haber.php">Geri</a> </p> <p> </p> <div class="templatemo_line"></div> </div> < ?php } ?> <center> <b> < ?php for ($i=1; $i<=$s_sayisi; $i++) { echo "<a href=haber.php?page=$i>$i "; } ?> </b> </center> <div id="templatemo_footer"> İLETİŞİM Bilgileri </div>
Proje dosyalarını buradan indirebilirsiniz. İndir
oldum olası şu sayfalamayı anlayamadım 🙁
aynı fıkırdeyım
ya nerden değilde mesela mysql e dün eklenen içerikleri çeksin yani 1 gün önceki içerikleri nasıl çekeriz
iyi günler emekleriniz için teşekkürler ama bu şekilde işin içinden çıkmak gerçekten zor çünkü sizin veritabanınızı bilmiyoruz.Mümkünse bu konuyu çok daha sade bir veritabanında en basit mantığıyla anlatabilir misiniz?
taner , sayfalama sistemi için veritabanını bilmek gerekmiyor. işin püf noktası veri çekmek için kullandığın LIMIT değerini değiştirmek. her sayfada limit degerini orantılı bi şekilde arttırmak gerekiyor. herhangi bi sorun olursa e-posta yazabilirsin.
admin panelde
haber düzenleme kısmı çalışmıyor..
aynı şekilde güncel haber düzenle
iletişim bölümü çalışmıyor..
sadece haber ekleyebiliyorsunuz..
bir yardımcı olabilecekmisiniz ?
acaba anadizinde olmadığından mı admin panel çalışmıyor ?
sayfanın başına error_reporting(E_ERROR); kodunu ekle yunus,
hatanın ne olduğunu bilmene yardım eder
güzel olmuş fakat, ben Muharrem Erin Bey in yaptıgını kullanıyorum ,çok basit bir nesneler kullanılarak yapılmış,OOP nin yararı bence bu tür şeyleri kullanına ve php nin yanında OOP kullanın derim http://www.muharremerin.com/kgpager-php-class-v2-1-php-sayfalama-sinifi-vbb-benzeri/ yada phpclasses sitesinde de çok güzel class lar bulunmakdır.
harikasın usta çok lazımdı ya