PHP İle Sayfalama Yapma
Uzun bir aradan sonra nihayet yeni bir yazı yazıp, sizlerle paylaşma fırsatı buldum. Hemen konuya geçecek olursak PHP ile ilgilenmeye yeni başlayanların sık karşılaştığı bir sorun olan sayfalama tekniği. Google‘ dan aşina olduğumuz bu teknik, özellikle forumların ülkemizde yaygınlaşmasıyla heryerde görünür hale geldi. Çok fazla veri içeren tabloların ekrana sunumunda kullanıcıya büyük kolaylık sağlayan bu tekniği bir örnekle anlamaya çalışalım.
İlk olarak phpMyAdmin’de id, başlık ve metin alanları bulunan basit bir tablo yaratıyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | CREATE TABLE `veriler` ( `id` int(10) NOT NULL AUTO_INCREMENT, `baslik` varchar(100) NOT NULL, `metin` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; -- -- Tablo döküm verisi `veriler` -- INSERT INTO `veriler` VALUES (1, 'selam', 'selam selam'); INSERT INTO `veriler` VALUES (2, 'merhaba', 'merhaba merhaba'); INSERT INTO `veriler` VALUES (3, 'naber', 'naber naber'); INSERT INTO `veriler` VALUES (4, 'iyidir', 'iyidir iyidir'); INSERT INTO `veriler` VALUES (5, 'görüşürüz', 'görüşürüz görüşürüz'); INSERT INTO `veriler` VALUES (6, 'tamam', 'tamam tamam'); |
Tablomuzu oluşturduktan sonra aşağıdaki örneği inceleyerek basit bir sayfalamanın nasıl yapıldığını görebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <? $db_host = "localhost"; // Genelde localhost $db_kullanici = "root"; // Veritabanı kullanıcı adı $db_sifre = "******"; // Veritabanı şifresi $db_adi = "deneme"; // Veritabanı adı $baglanti=mysql_connect($db_host, $db_kullanici, $db_sifre); mysql_select_db($db_adi); if(mysql_errno()) { echo 'Veritabanına bağlanılamıyor ...'; exit; } if (empty($sayfa)) { // İlk açılışta sayfayı 1 yapıyoruz. $sayfa=1; } $sayfa=$sayfa-1; $kayit=5; // Her sayfada kaç kayıt olacağını belirtiyoruz. $baslangic=$sayfa*$kayit; $bitis=$baslangic+$kayit; $sorgu=mysql_query ("SELECT * FROM veriler LIMIT $baslangic, $bitis"); echo "<div id='sonuclar' style='width:500px;'> <h3>Veriler</h3>"; while ($dizi=mysql_fetch_array($sorgu)) { // Bu bölümde verileri sıralıyoruz. echo "<b>$dizi[baslik]</b> <br />$dizi[metin]<br /><hr>"; } echo "</div>"; $sorgu2=mysql_query ("SELECT * FROM veriler"); $say=mysql_num_rows($sorgu2); // Toplam kayıt sayısını buluyoruz. $j=1; for ($i=0; $i<$say; $i=$i+$kayit) { // Döngü sayfada gösterilecek veri sayısı kadar artıyor. echo "<a href='index.php?sayfa=$j'>$j</a> "; $j++; } mysql_close($baglanti); ?> |
Konu hakkında soru, görüş ve önerilerinizi ısrarla bekliyorum.






Arşivime katmam gerekiyor bunu.Çok güzel olmuş gerçekten, tebrik ederim.RSS ile hemen abone oluyorum bloğunuza.Başarılar dilerim.
Bloguma aldığım ilk yorumun olumlu olması beni gerçekten sevindirdi. Senin için faydalı olduysa ne mutlu bana…
ikinci sayfaya geçmiyor.
on numara olmus basit sadece ve kullanıslı
@Göksel eklemeden önce birkaç kez kontrol etmiştim. Tekrar bi bak istersen
arkadaş sayfalama güzel apch çalışıyor ama host çalişmiyor ikinci sayfa atlamiyor.. çalıştıran var allah rizasi için bana göndersein… email adresim : bayburtweb@hotmail.com
@Yakup Çalışmayan PHP dosyasının içeriğini yazar mısın buraya.
gerçekten güzel bir çalışma icra edilmiş fakat kodun tek eksiği şu sayfalama gayet başarılı fakat 5 veri ilk sayfada gösteriliyor fakat 5 ten büyük veriler için 5 ten sonraki kısımları 2. sayfada göstermesi gerekirken tekrar başa dönüyor ve ilk sayfadaki gibi ilk 5 veriyi gösteriyor bu kısmıda düzeltirseniz kodunuz gayet başarılı olacaktır…
Saygılarımla msb iyi çalışmalar