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>"; ?>
11 yorum
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.
Yanıtla
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
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
el emeği göz nuru olmuş bizim için ders olmuş:)
Yanıtla
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
59. satırı alttaki gibi değiştirirseniz istediğiniz sonucu alırsınız.
Kodlarınız hatalı kontrol edmenızı rıca edıyorum....
Yanıtla
kodlar hatali hocam yaww! isset ile sayfa degiskeni bastan nerden geliyor ki kontrol ettirmissin :)
Yanıtla
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....
bu kodlar hatali yaw
Yanıtla
Çok teşekkür ederim çalışıyor.
Yanıtla
Yorum Yaz