Makelemizin konusu PHP ile sayfalandırma. Sayfalandırma tam olarak 1 2 3 …. 5 6 7 …. 20 21 22 şeklinde sayfaların sıralanmasıdır. İlk olarak burda kullanacagımız degişkenleri tanımlayalım.

<?php
$sayfa_sayisi= 7; // Bu degisken toplam kac tane sayfamiz oldugunu gosteriyor
$sayfa=1; // Bu degisken ise simdi hangi sayfada oldugumuzu gosteriyor.
?>
 

Eger sayfa sayımız 10 dan kucuk olursa yukardaki gibi bir gosterime gerek duymadan. Direk sayfa numaralarını gosterelim. Arkadaşlar biz burda sayfalara link vermeden direk sayfanın numarasını gosteriyoruz siz tabiki de kullanırken bu sayfalara link vereceksiniz.

<?php
$sayfa_sayisi= 7; // Bu degişken toplam kac tane sayfamiz oldugunu gosteriyor
$sayfa=1; //d Bu degişken ise şimdi hangi sayfada oldugumuzu gosteriyor.
if ($sayfa_sayisi<=10) {
// eger sayfa sayimiz 10 dan kucuk olursa burasi işleyecek
for ($a=1; $a<=$sayfa_sayisi;$a++) {
// sayfa sayisi kadar donguyu dondurduk
echo "$a | "; // her dongude sayfa numarasini gosterdik
}
}
?>
 

Şimdi ise sayfa sayımız 10 dan buyuk oldugu durumlarda ne yapacagımıza bi bakalım. Neden 10 dan buyuklerde bu yontemi kullanmıyoruz ? cunku; 100 tane sayfamız oldugunu varsayalım o zaman 100 yane link gorunecek bu da hoş bir goruntu olmaz.

<?php
$sayfa_sayisi= 15; //10 dan buyuk olma durumunu inceleyecegimiz icin 15 yapiyorum.
$sayfa=7; // Bu degişken ise şimdi hangi sayfada oldugumuzu gosteriyor.
if ($sayfa_sayisi<=10) {
// eger sayfa sayimiz 10 dan kucuk olursa burasi işleyecek
for ($a=1; $a<=$sayfa_sayisi;$a++) {
// sayfa sayisi kadar donguyu dondurduk
echo "$a | "; // her dongude sayfa numarasini gosterdik
}
}
else{
// Sayfa sayisi 10 dan buyuk olursa
// ilk uc sayfa
for ($a=1; $a<=3; $a++) {
echo "$a | ";
}
// sonraki sayfalar
switch ($sayfa) {
case ($sayfa<=3):
// sayfa 3 ten kucukse
$sayfa_sayisi0=$sayfa_sayisi-1; // sayfa sayisindan onceki sayfa
echo "… $sayfa_sayisi0 | $sayfa_sayisi";
break;
case ($sayfa==4):
// sayfa 4 eşitse
$sayfa1=$sayfa+1; // secili sayfadan sonraki sayfa
$sayfa_sayisi0=$sayfa_sayisi-1; // sayfa sayisindan onceki sayfa
echo "$sayfa | $sayfa1 … $sayfa_sayisi0 | $sayfa_sayisi";
break;
case ($sayfa==5):
// sayfa 5 eşitse
$sayfa0=$sayfa-1; // secili sayfadan onceki sayfa
$sayfa1=$sayfa+1; // secili sayfadan sonraki sayfa
$sayfa_sayisi0=$sayfa_sayisi-1; // sayfa sayisindan onceki sayfa
echo "$sayfa0 | $sayfa | $sayfa1 … $sayfa_sayisi0 | $sayfa_sayisi";
break;
case ($sayfa==$sayfa_sayisi):
// sayfa sayfa sayisina eşitse
$sayfa0=$sayfa-1; // secili sayfadan onceki sayfa
echo "… $sayfa0 | $sayfa";
break;
case ($sayfa==($sayfa_sayisi-1)):
// sayfa sayfa sayisindan 1 eksikse
$sayfa0=$sayfa-1; // secili sayfadan onceki sayfa
$sayfa1=$sayfa+1; // secili sayfadan sonraki sayfa
echo "… $sayfa0 | $sayfa | $sayfa1";
break;
case ($sayfa==($sayfa_sayisi-2)):
// sayfa sayfa sayisindan 2 eksikse
$sayfa0=$sayfa-1; // secili sayfadan onceki sayfa
$sayfa1=$sayfa+1; // secili sayfadan sonraki sayfa
echo "… $sayfa0 | $sayfa | $sayfa1 | $sayfa_sayisi";
break;
case ($sayfa==($sayfa_sayisi-3)):
// sayfa sayfa sayisindan 3 eksikse
$sayfa0=$sayfa-1; // secili sayfadan onceki sayfa
$sayfa1=$sayfa+1; // secili sayfadan sonraki sayfa
$sayfa_sayisi0=$sayfa_sayisi-1; // sayfa sayisindan onceki sayfa
echo "… $sayfa0 | $sayfa | $sayfa1 | $sayfa_sayisi0 | $sayfa_sayisi";
break;

default:
$sayfa0=$sayfa-1; // secili sayfadan onceki sayfa
$sayfa1=$sayfa+1; // secili sayfadan sonraki sayfa
$sayfa_sayisi0=$sayfa_sayisi-1; // sayfa sayisindan onceki sayfa
echo "… $sayfa0 | $sayfa | $sayfa1 … $sayfa_sayisi0 | $sayfa_sayisi";
break;
}
}
?>
 

Sayfalama kodunu bitirdik. sayfa ve sayfa_sayisi degişkenlerini degiştirerek kodlarımızı deneyebilirsiniz. 

Ahmet EROL

1 YORUM

Bir Cevap Yazın