« PHP ile Sayfalama Yapımı
PHP ile sayfalama yapımını mantık olarak LIMIT ile satır sayısını alıp onu sayfalara bölmek anlamına getirebiliriz.
İletişim sayfasından bana ulaşarak bu dersi sabırla bekleyen sayın Süleyman Vural’a gösterdiği sabrından dolayı da teşekkür etmek isterim.
Birçok yoğun projeden fazla ders ekleme imkanım olmadı. Fakat yine de pek fazla detaya girmeden öncelikle örnek olarak yaptığım kodları paylaşacağım. Kodlar kütüphanemden örneğe çevirdiğim kodlardır. SQL dosyasıyla birlikte çalışma dosyasını indirip localhostta deneme yanılma yöntemini kullanarak çalışmalar da yapabilirsiniz.
İleri ve geri sayfaları mantık olarak +1 ve -1 yapmaktan kaynaklanıyor. Yani İlerisi için şu anki sayfadan +1 arttırıyoruz ve gerisi içinde -1 azaltıyoruz. Kodlara bakarak daha iyi anlayabilirsiniz.
<?php
include ("ayar.php");
$limit = 5;
$git = @$_GET["git"];
if(empty($git) or !is_numeric($git)) {
$git = 1;
}
$count = mysql_num_rows(mysql_query("SELECT id FROM sayfa"));
$toplamsayfa = ceil($count / $limit);
$baslangic = ($git-1)*$limit;
$sorgu = "SELECT * FROM sayfa ORDER BY id ASC LIMIT $baslangic,$limit";
$yazdir_sorgu = mysql_query( $sorgu, $mysqlbaglantisi) or die(mysql_error() );
while ($yazdir = mysql_fetch_array($yazdir_sorgu)){
echo $yazdir['title'];
echo "<br>";
}
if($count > $limit) :
$x = 2; // akrif sayfadan önceki/sonraki sayfa gösterim sayisi
$lastP = ceil($count/$limit);
if($git > 1){
$onceki = $git-1;
echo "<a href="?git=$onceki">« Önceki Sayfa </a>";
}
// sayfa 1'i yazdir
if($git==1) echo "<span class="sayfa">[1]</span>";
else echo "<a href="?git=1">[1]</a>";
// "..." veya direkt 2
if($git-$x > 2) {
echo "...";
$i = $git-$x;
} else {
$i = 2;
}
// +/- $x sayfalari yazdir
for($i; $i<=$git+$x; $i++) {
if($i==$git) echo "<span class="sayfa">[$i]</span>";
else echo "<a href="?git=$i">[$i]</a>";
if($i==$lastP) break;
}
// "..." veya son sayfa
if($git+$x < $lastP-1) {
echo "...";
echo "<a href="?git=$lastP">[$lastP]</a>";
} elseif($git+$x == $lastP-1) {
echo "<a href="?git=$lastP">[$lastP]</a>";
}
if($git < $lastP){
$sonraki = $git+1;
echo "<a href="?git=$sonraki"> Sonraki Sayfa » </a>";
}
endif;
?>
Çalışma dosyasını buradan indirip ayar.php dosyasından kendi mysql bağlantı ayarlarını yaparak sql dosyasınıda import ederek örneği inceleyebilirsiniz.
Kavradıktan sonra kendi sayfalama sistemlerinizide geliştirirsiniz.








13 Yorum
teşekkür ederim bende php ye yeni başladım ama örneğiniz gercekten kolay anaşılır olmuş ancak eleştirmek gibi olmasın ama değişkenlerinize türkce anlaşılır isimler verseniz daha cabuk anlardım =)
teşekkürler phpde kendimce sayfa derliyorum bu hazırlamış oldugun konu iyi bir deneyim oldu benim için ;)
Merhaba paylaşım için çok teşekkürler, kodlama tamamen sizemi ait yoksa başka kaynaklardanmı derlediniz?
Verdiğin kodlar için teşekkürler fakat bu kodu çalıştırınca hata verir (: Neden mi?
Örneğin 70. satır;
şeklinde değil de
Şeklinde olması gerekiyor :) yani ” koyarsanız otomatik olarak echo komutunu kapatmış olacaksınız ve sayfa hata verecek bunu engellemek için echo içinde ” kullanmanız gerekiyorsa ” kullanacağınız yerlerin başına \ koymanız yeterli olacaktır yukarıda verdiğim örnekteki gibi..
ve altına keşke alıntıdır yazsaydınız :) alıntı değildir demeyin. eğer siz bunu kendiniz kodlamış olsaydınız denemiş olurdunuz. denemiş olsaydınız bu hatanın farkına varırdınız.
Saygılarımla
Gayet Türkçe zaten örnek adam php yi mi Türkçe yazcak :s
Ahmet D yani adam paylasmıs yazmıs çizmiş hemen gelip ne die öyledir böyledir diosun. ne güzel herkez faydalanıyor. bende aldım şimdi seo ya uyarlamaya calısıcam.
çok teşekkürler kodu arşivime aldım artık çoğu scriptimde kullanıcam.
teşekkürler birkaç düzenlemeden sonra yazdığım scriptte kullanıyorum
verdiğin bilgiler için teşekkür ediyorum çok faydalı bi çalışma olmuş eline sağlık..
projem için gerekli biri yardım edebilirmi melih_oztrk@hotmail.com
mysql_fetch_array() neden sql cümlesi değişkeni $sorgu yu direk kullanmadınız $yazdır_sorgu değişkeni performansı etkilemezmi? vede mysql_close() neden kullanılmaz bizim türk scriptlerinde anlamadım …
@gökan adam yapıcağını yapmış neden yaranılamamazlık söz konusu. deki, güray bu şekilde düzenleyelim mantık budur / bu olur. ne yani ne bu hiddet – celal ? :)
paylaşım çok teşekkür ederim.