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

Mysql veritabanını PHP ile listelerken sayfalama yapmak istiyorsanız bu örnek işinizi görecektir. Bu sayfalama scripti hem çalışma mantığını hemde basitçe sayfalama yapmanızı sağlar.

Ö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 ;

Bir kaç veri girişi yapalım;

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 ile sayfalama scriptimizi oluşturalım;

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

      Bu kısım da sayfa ortasında 3 erli alt alta ürünlerin sayfalandığı kısım buradaki sorunum ne kadar ürünüm varsa bu marka altındaki olması gerektiği gibi bu sayfada çıkıyor fakat sorun şu ki ne kadar varsa hepsi alt alta uzayıp gidiyor yani bunu her sayfada yine yan yana 3erli ve alt alta toplam 10 ya da 20 ürün şeklinde sayfalamak mümkün mü yani 1-2-3 son şeklinde bu kodu inceleyip yapmam gerekenleri yapıp yardımcı olacak birileri var mı teşekkü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>
      		<?php $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>
      		<?php $satir++;}?> </td>
      		<!-- /SONU -->
      	</tr>
      </table>

       

      Yanıtla

      Master Admin Yorum: 1182 Forum Mesaj: 295

      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

    • niyazi

      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

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

      Yanıtla

    • Muharrem
      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 Admin Yorum: 1182 Forum Mesaj: 295
      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>";
    • MasterWeb
      Kodlarınız hatalı kontrol edmenızı rıca edıyorum....

      Yanıtla

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

      Yanıtla

      Master Admin Yorum: 1182 Forum Mesaj: 295
      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....
    • murat
      bu kodlar hatali yaw

      Yanıtla

    • kattal
      Çok teşekkür ederim çalışıyor.

      Yanıtla

Yorum Yaz

İlginizi çekebilir...
Sitede Ara
  • Açıköğretim Aöf Dönem Ücretleri 2024 - 2025 Güncel Öğretim Giderleri Tablosu
    Okumuyorum ve kayıt yenilemiyorum. Nokta....
  • Islets Oyunu Türkçe Yama (Epic ve Steam)
    Rar şifresi nedir? şifreyi belirymemişsiniz...
  • ECA Kombi Aşırı Isınma Arızası Arıza Kodu 6 Nedir Nasıl Çözülür - Pompa Çalışmıyor Olabilir Mi?
    bu hata kodu çıkıyordu kombimizde tarif ettiğiniz şekilde pompayı harekete geçirdik ve sorun çözüldü si...
  • Çiklet (Prenses) Balıklarındaki Ürkeklik ve Korkaklık
    Ben çok uzun süre sp, bp ile frenatus besledim hiç bir sorun yaşamadım. Çok uyumlulardı. Renk katıyor a...
  • Genel İşletme 1. Dönem Vize Soruları
    soru 3 yanlıs bence"...
  • CS 1.5 ve CS 1.6 İçin Sağlam Bir CFG (cengaver.cfg)
    bozuk bu cfg kullanmayın derim ...
  • Türkiye'de Hangi Burçtan Kaç Kişi Var?
    Akrep burcu olan var mı ben akrep burcu olarak hiç akrep burcu bulamıyorum....