8

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.

Paging CSS

< ?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>
	

Kodlar’ın hepsi ve proje dosyalarnı buradan indire bilirsiniz.Porje Dosyaları

Etiketler:

, , , , , , , , ,


Yazar hakkında
Müslüm Gümüşlüoğlu
Hem yazılım, hem kendini geliştiriyor. teknoloji meraklısı... kişisel weblogu

Stumbleupon'a Ekle

8 Responses so far

  1. Ali diyor ki:

    oldum olası şu sayfalamayı anlayamadım :(

  2. fitness diyor ki:

    aynı fıkırdeyım

  3. yunus diyor ki:

    ya nerden değilde mesela mysql e dün eklenen içerikleri çeksin yani 1 gün önceki içerikleri nasıl çekeriz

  4. taner macit diyor ki:

    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?

  5. serpito diyor ki:

    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.

  6. yunus diyor ki:

    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..

  7. yunus diyor ki:

    bir yardımcı olabilecekmisiniz ?
    acaba anadizinde olmadığından mı admin panel çalışmıyor ?

  8. serpito diyor ki:

    sayfanın başına error_reporting(E_ERROR); kodunu ekle yunus,

    hatanın ne olduğunu bilmene yardım eder

Yorumunuzu paylaşın