REKLAM ALANI

PHP Sayfalama Fazlası

avatar TRWebmaster
Aktif Üye
241
#1
Yorumu Paylaş

Yukarıda anlattığım bu yöntem ile artık içeriklerinizi sayfalı yapabilirsiniz. Ama biraz ileri görüşlü olursak ya da elimizde çook fazla içerik ve bu nedenle yüzlerce sayfamız varsa; 1’den 200’lere kadar çok uzun sayfalar bağlantımız olur. Hem çirkin hem de kullanıcı dostu olmayan bir görüntü ile karşılaşırız. Bunu önlemek için ne kadar çok sayfamız olursa olsun kullanıcını o an kaçıncı sayfada ise ona ilaveten sonraki ve önceki 5-10 sayfayı göstermeliyiz. Yani şu şekilde;
PHP Kod:
<<İlk sayfa <Önceki 35 36 37 38 [3940 41 42 43 SonrakiSon sayfa>> 

Ben bu olay için bir kod bloğu hazırladım, bunu direkt çalışmanıza dahil edip kullanabilir ya da inceleyip daha farklı versiyonlarını yazabilirsiniz. Dikkat edilmesi gereken nokta; bu yöntemin doğru ve güzel çalışması için $sayfa_goster değerine her zaman tek sayı girin. Bu sayede kullanıcı bulunduğu sayfayı yukarıdaki örnekteki gibi ortada görür.
 
PHP Kod:
// yukarıdan geldiği varsayılan değişkenler:
// $toplam_sayfa ve $sayfa
 
$sayfa_goster 
11// gösterilecek sayfa sayısı
 
$en_az_orta 
ceil($sayfa_goster/2);
$en_fazla_orta = ($toplam_sayfa+1) - $en_az_orta;
 
$sayfa_orta 
$sayfa;
if(
$sayfa_orta $en_az_orta$sayfa_orta $en_az_orta;
if(
$sayfa_orta $en_fazla_orta$sayfa_orta $en_fazla_orta;
 
$sol_sayfalar 
round($sayfa_orta - (($sayfa_goster-1) / 2));
$sag_sayfalar round((($sayfa_goster-1) / 2) + $sayfa_orta); 
 
if($sol_sayfalar 1$sol_sayfalar 1;
if(
$sag_sayfalar $toplam_sayfa$sag_sayfalar $toplam_sayfa;
 
if($sayfa != 1) echo ' <a href="?sayfa=1">&lt;&lt;İlk sayfa</a> ';
if(
$sayfa != 1) echo ' <a href="?sayfa='.($sayfa-1).'">&lt;Önceki</a> ';
 
for($s $sol_sayfalar$s <= $sag_sayfalar$s++) {
    if($sayfa == $s) {
        echo '[' $s '] ';
    } else {
        echo '<a href="?sayfa='.$s.'">'.$s.'</a> ';
    }
}
 
if($sayfa != $toplam_sayfa) echo ' <a href="?sayfa='.($sayfa+1).'">Sonraki&gt;</a> ';
if(
$sayfa != $toplam_sayfa) echo ' <a href="?sayfa='.$toplam_sayfa.'">Son sayfa&gt;&gt;</a>'

1000+ sayfadan çok daha ötesi için burada anlattığımız “LIMIT 10, 5” ifadesini kullanmak yerine şu slaytta anlatılan yöntemleri inceleyebilirsiniz. Eğer fırsat olursa buradaki slaytta bahsi geçen yöntemleri de ayrı bir yazı ya da bu yazıya ek olarak yazmayı düşünüyorum.

Bu konuyla alakalı aklınıza takılan soruları ya da uyguladığınızda karşılaştığınız sorunları paylaşmaktan çekinmeyin.
 
Bir sonraki PHP serüveninde görüşmek üzere!
deneme
Aktif Üye

Konuda Ara

0 Yorum


Konuyu Okuyanlar: