Php Vbulletin Tarzı Sayfalama Yapma

  Şimdi Sizlere Vebulletin tarzı uzantısı …./sayfa=1 ,…. /sayfa=2… Gibi Biten listeme yapmanın mantıgını anlatmaya calıscam .İlk Once Şu Şekilde Bir Mantıkla İşe Başlıyoruz .

 

 GET modülünden sayfa numarasi al

$sayfa = @$_GET[”sayfa”];

//bir sayfada listelenecek kayit sayisi

$sayfalik_kayit = 10;

//sayfa belirlenmemisse, sayfa=1 yap

if( empty($sayfa) ){ $sayfa=1; }

//limit baslangici

$baslangic = ($sayfa*$sayfalik_kayit)-$sayfalik_kayit;

//bütün kayitlari sorguluyoruz

$genel_sorgu = mysql_query(”select * from sozluk”);

//toplam kaydi hesapliyoruz.

$toplam_kayit = mysql_num_rows($genel_sorgu);

toplam sayfayi hesapliyoruz.

$toplam_sayfa = ceil($toplam_kayit/$sayfalik_kayit); //ceil()
İfadesi Çıkacak Olan Sonucu Yukarı Yuvarlama yapar

Örnek toplam_kayit/sayfalik_kayit Bize kac sayfa olcagını solicek ya bunun sonucu 2.6 ıse ceil ile biz onu 3 yaparız anladık umarım .

  Devam edıyoruz

$sql = mysql_query(”Select * from TABLO_ADIN limit $baslangic, $sayfalik_kayit”);

  İşte Burda Farkettiğimiz bi olay ne limit $baslangic, $sayfalik_kayit) Bu ifade bu tablodan cektıgın verileri limitliyor sayfa basına kac dedıysek o kadar lıstelememızı saglıyor .

Şimdi De Sayfa 1 , Sayfa 2 , dıye lıstelememız lazım 1 e basınca sayfa 1 e gelmelı 2 ye basınca 2 ye onuda Select Secmelı bır menu ıle yapayım oda sole kucuk bı for dongusu ile tamamdır For dongusu ile o selectli ıfadenın hepsını aynı anda yazıyorum acıklanacak bı tarafı yok eger anlamıorsunu for dongusunu bılmıyorsunuz demektır ..

echo “<select onchange=\”location=’SAYFALAMA YAPTIGIN SAYFANIN ADRESİ.php?sayfa=’+this.value\”>\n”; for($i=0;$i<$toplam_sayfa;$i++){

$sayfa_no = $i+1;

$sec = ($sayfa_no==$sayfa) ? ” selected” : “”;

echo “< option value=\”$sayfa_no\” $sec>Sayfa $sayfa_no</ option >\n”;

}

echo “</select>\n\n”;

32 views

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word