Php ile Basitçe Mysql Sayfalama Kod Örneği

Öncelikle veritabanımızı oluşturalım

Öncelikle veritabanımızı oluşturalım

CREATE TABLE `kullanicilar` (
`kullanici_no` int(10) NOT NULL auto_increment,
`kullanici_adi` varchar(20) NOT NULL default '',
`adi` varchar(20) NOT NULL default '',
`soyadi` varchar(20) NOT NULL default '',
PRIMARY KEY (`kullanici_adi`),
UNIQUE KEY `kullanici_no` (`kullanici_no`)
) TYPE=MyISAM AUTO_INCREMENT=18 ;

INSERT INTO `kullanicilar` VALUES (1, 'myavruturk', 'Mehmet', 'Yavrutürk');
INSERT INTO `kullanicilar` VALUES (2, 'Musti', 'Mustafa', 'Kaya');
INSERT INTO `kullanicilar` VALUES (3, 'ali10', 'ali', 'veli');
INSERT INTO `kullanicilar` VALUES (4, 'ali11', 'ali', 'velix');
INSERT INTO `kullanicilar` VALUES (5, 'ali12', 'ali', 'velix');
INSERT INTO `kullanicilar` VALUES (6, 'ali13', 'ali', 'velix');
INSERT INTO `kullanicilar` VALUES (14, 'hardim', 'muhammed', 'kaya');


<?php
// VERİTABANI BİLGİLERİ
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "123";
$dbname = "sayfalama";
//****************************************************************
// ########## MYSQL Bağlantı Ayarları ############################
$veri_yolu=mysql_connect("$dbhost","$dbuser","$dbpass") or die("<center><br>MySQL Bağlantı Hatası!</center>") ;
mysql_select_db("$dbname", $veri_yolu) or die ("<br><center>Veri Tabanı Bulunamıyor!</center>");
//****************************************************************
// sayfa değişkenine değer atatmamışsa 1'e eşitliyoruz
if(!isset($_GET['sayfa'])){
$sayfa = 1;
} else {
$sayfa = $_GET['sayfa'];
}
//****************************************************************
// sayfa başına kaç kayıt listelenecek
$kacar = 2;
//****************************************************************
// Geçerli sayfadan itibaren kaç kayıt kaldığını buluyoruz
$kactan = (($sayfa * $kacar) - $kacar);
//****************************************************************
// $kactan ve $kacar değişkenlerimizin aldığı değerlere göre bilgileri veritabanından alıyoruz
$sonuc = mysql_query("SELECT * FROM kullanicilar LIMIT $kactan, $kacar");
//****************************************************************
// Sayfa Başında Tablo Başlıklarını hazırlıyoruz
echo "<table align=\"center\" width=\"700\" border=\"1\" bordercolor=\"FFFFFF\" cellspacing=\"2\" cellpadding=\"2\"><tr bordercolor=\"6699FF\" bgcolor=\"6699FF\"><td width=\"60\" height=\"25\">Sıra No</td><td width=\"180\">Kullanıcı Adı</td><td width=\"180\">Adı</td><td width=\"180\">Soyadı</td></tr>";
//****************************************************************
$sirano = 1; // herkaydın sıra numarası için sırano değişkeni oluşturuyoruz
//****************************************************************
// Kayıtlarımızı ekranda gösteriyoruz
while ($sorgu_verisi = mysql_fetch_array($sonuc)) {
echo " <tr bordercolor=\"6699FF\"><td height=\"25\">$sirano</td><td>$sorgu_verisi[kullanici_adi]</td><td>$sorgu_verisi[adi]</td><td>$sorgu_verisi[soyadi]</td>";
$sirano++;
}
echo "</tr></table>";
//****************************************************************
// Toplam kayıt sayısını veritabanından alıyoruz
$toplam_kayit = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM kullanicilar"),0);
//****************************************************************
// ceil() fonksiyonumuz ile toplam sayfa adedini buluyoruz
$toplam_sayfa = ceil($toplam_kayit / $kacar);
//****************************************************************
echo "<table width=\"700\" border=\"1\" bordercolor=\"FFFFFF\" align=\"center\" cellpadding=\"2\" cellspacing=\"2\"><tr class=\"tablobaslik\" bordercolor=\"000000\">";
//****************************************************************
// Önceki Kayıtların Gösterileceği Linkimiz
echo "<td width=\"100\">";
if($sayfa > 1){
$prev = ($sayfa - 1);
echo "<a href=\"".$_SERVER['PHP_SELF']."?sayfa=$prev\"> Önceki Sayfa</a>";}
else { echo "Önceki Sayfa";}
for($i = 1; $i <= $toplam_sayfa; $i++){
if(($sayfa) == $i){
echo "</td><td> Aktif Sayfa: ";
echo "<b> $i </b>";
} else {
echo "<a href=\"".$_SERVER['PHP_SELF']."?sayfa=$i\"></a> ";
}
echo "</td>";
}
// Sonraki Kayıtlarımızın Gösterileceği Linkimiz
echo "<td width=\"100\">";
if($sayfa < $toplam_sayfa){
$next = ($sayfa + 1);
echo "<a href=\"".$_SERVER['PHP_SELF']."?sayfa=$next\"> Sonraki Sayfa</a></td>";}
else { echo "Sonraki Sayfa";}
echo "</td>";
echo "<td>Toplam Kayıt : <b>$toplam_kayit</b> </td>";
echo "<td>Toplam Sayfa : <b>$toplam_sayfa </b></td>";
echo "</tr></table>";
?>



Etiketler: Sayfalama mysql

11 yorum

  • Yorumunuz en az 30 karakter olmalıdır. (0)
    Tüm Yorumlar
    • Master 27.11.2013 22:15

      turgut Kullanıcısından alıntı;

      BU KISIM DA SAYFA ORTASINDA 3 ERLİ ALT ALTA ÜRÜNLERİN SAYFALANDIĞI KISIM BURDAKİ SORUNUM NE KADAR ÜRÜNÜM VARSA BU MARKA ALTINDAKİ OLMASI GEREKTİĞİ GİBİ BU SAYFADA ÇIKIYOR

      FAKAT SORUN ŞUKİ NEKADAR VARSA HEPSİ ALT ALTA UZAYIP GİDİYOR

      YANİ BUNU HER SAYFADA YİNE YAN YANA 3ERLİ VE ALT ALTA TOPLAM 10 YADA 20 ÜRÜN ŞEKLİNDE SAYFALAMAK MÜMKÜNMÜ YANİ 1-2-3 SON ŞEKLİNDE BU KODU İNCELEYİ YAPMAM GEREKENLERİ YAPIP YARDIMCI OLUCAK BİRİLERİ VARMI TEŞEKÜRLER..!!!!!!!!!


       

      Merhaba, bahsettiğiniz şeyi ul li tag'leriyle yapabilirsiniz. Ul li çoklu sütun destesi sunar ve sınırı siz belirlersiniz.

      ul li ile listeyi iki sütunda sıralama

      başka bir örnek

      Bir listede çoklu sütun kullanma

      Yanıtla

    • turgut 27.11.2013 20:48
        BU KISIM DA SAYFA ORTASINDA 3 ERLİ ALT ALTA ÜRÜNLERİN SAYFALANDIĞI KISIM BURDAKİ SORUNUM NE KADAR ÜRÜNÜM VARSA BU MARKA ALTINDAKİ OLMASI GEREKTİĞİ GİBİ BU SAYFADA ÇIKIYOR FAKAT SORUN ŞUKİ NEKADAR VARSA HEPSİ ALT ALTA UZAYIP GİDİYOR YANİ BUNU HER SAYFADA YİNE YAN YANA 3ERLİ VE ALT ALTA TOPLAM 10 YADA 20 ÜRÜN ŞEKLİNDE SAYFALAMAK MÜMKÜNMÜ YANİ 1-2-3 SON ŞEKLİNDE BU KODU İNCELEYİ YAPMAM GEREKENLERİ YAPIP YARDIMCI OLUCAK BİRİLERİ VARMI TEŞEKÜRLER..!!!!!!!!! ************************************--> <td colspan="2" valign="top" >&nbsp; <font size="4" color="#FFFFFF">&nbsp;<?=$sorgu['baslik'];?></font> <br>   <table width="154" border="0" bgcolor="#FFFFFF" cellpadding="4" cellspacing="4"> <tr> <? $paket=mysql_query("SELECT * from urun where kid='".$kid."'"); if(mysql_num_rows($paket)==0)  print "<br/> <center> <font color='#ff0000'>Bu kategoriye daha önce ürün eklenmemiş.</font> </center>"; while($p=mysql_fetch_array($paket)){ if($satir%3==0){echo " </tr> <tr>";}; ?> <td colspan="3" valign="top" style="border-right:solid 1px #CCC; border-bottom:solid 1px #CCC;"> <table width="190" border="0"> <tr> <td width="184" height="24" align="center" background="images/header_07.png"> <font color="#ffffff" size="2" face="Arial, Helvetica, sans-serif"> <a class="dd4" href="urun.php?id=<?=$p['id']?>"><?=substr($p[baslik],0,13)?></a>.. </font> </td> </tr> <tr> <td align="center"> <a href="urun.php?id=<?=$p['id']?>"> <img src="admin/uresim/<?=$p[resim]?>_b.jpg" width="180" height="180" border="0"/></a> </td> </tr> <tr> <td align="center"> <font color="#990000" size="2">Fiyatı :</font> <font size="2" color="#339921"> <?=$p['fiyat']?> TL</font> </td> </tr> <tr> <td height="23" align="center" background="images/geri.jpg" style="border:solid 1px #CCC;">  <a href="urun.php?id=<?=$p['id']?>">Detaylar</a> </td> </tr> </table> <? $satir++;}?> </td> <!-- /SONU -->

      Yanıtla

    • niyazi 19.05.2013 16:44

      Kodlar çalışıyor yanlız  her sayfada sırano kaldığı yerden devam etmiyor yani sayfa1 de sırano 1 sırano 2 , diğer sayfada sıra no 1 sıra no 2 , bunu kaldığı yerden nasıl devam ettiririz.

      Yanıtla

    • Ezgi 14.12.2011 19:08

      el emeği göz nuru olmuş bizim için ders olmuş:)

      Yanıtla

    • Master 02.12.2011 23:55
      @ Muharrem:
      59. satırı alttaki gibi değiştirirseniz istediğiniz sonucu alırsınız.

      echo "<a href=\"".$_SERVER['PHP_SELF']."?sayfa=$i\">$i</a>";

      Yanıtla

    • Muharrem 01.12.2011 23:23
      Kodlar gayet güzel bir şekilde çalışıyor. Paylaşım için teşekkür ediyorum.

      Benim bir sorum olacak. "Önceki sayfa" ve "Sonraki sayfa" linklerinin ortasında sayfa numaralı linkleri nasıl ekleyebilirim. Bir örnekle açıklamam gerekirse: 

      "Önceki sayfa 1 2 3 4 5 6 7 8 Sonraki sayfa"

      Umarım açıklayıcı olmuştur. 

      Yanıtla

    • Master 19.01.2011 12:51
      Kodları düzelttim. Şuanda hata gözükmüyor. ahmed yazmış:
      kodlar hatali hocam yaww! isset ile sayfa degiskeni bastan nerden geliyor ki kontrol ettirmissin
      Ahmet bey, ilk sayfa yüklemesinde bu kısım dediğiniz gibi pek anlamlı gözükmüyor fakat sayfalama yapıldığında ve sayfa numaralarından birine tıklandığında o değişken değer alacak ve isset kontrolü o zaman gerekli olacak....

      Yanıtla

    • MasterWeb 18.01.2011 11:30
      Kodlarınız hatalı kontrol edmenızı rıca edıyorum....

      Yanıtla

    • ahmed 01.08.2010 10:39
      kodlar hatali hocam yaww! isset ile sayfa degiskeni bastan nerden geliyor ki kontrol ettirmissin :)

      Yanıtla

    • murat 10.01.2010 16:33
      bu kodlar hatali yaw

      Yanıtla

    • kattal 06.08.2009 08:14
      Çok teşekkür ederim çalışıyor.

      Yanıtla

İlginizi çekebilir...