2-Kayıtları listelerken her sayfada 10 kayıt göstermek istiyorum,ve en altta sayfalama linkler çıksın istiyorum
Bu çok sorulan bir sorudur. Pek çok yerde de cevabı var aslında. Mesela ocal.net'de Asosyal isimli arkadaşımız vakt-i zamanında bu konuyla ilgili bir yazı yazmıştı. Öncelikle bu yazıyı incelemenizi tavsiye ederim
PHP-Mysql ile veri sayfalama
Ben tekrar burada anlatmayacağım ama bi kaç şey söylemek istiyorum:
Öncelikle mysql'de veri sayfalama mesela ASP Ve ADODB kullanmış birisine biraz yabancı gelebilir. Çünkü RecordSet'in Paging(sayfalama ) özelliği zaten varken, mysql'de böyle bir özellik yoktur.
Mysql onun yerine LIMIT özelliğini önermektedir. Şöyle çalışır :
Sırasıyla ilk sorgu 0. kayıt ile 30. kayıt arasını alır.Kod:SELECT * FROM uyeler LIMIT 0,30 SELECT * FROM uyeler LIMIT 30,30 SELECT * FROM uyeler LIMIT 60,30
İkinci sorgu 30. kayıtdan başlayarak 30 kayıt alır,yani 30-60 arası
Son sorgu ise 60.kayıtdan itibaren 30 kayıt alır yani 60-90 arası alınır.
Dikkat ettiyseniz sorgularımızın gidişatı her seferinde 30 kayıt listeleme üzerine kurulu ve bu 3 sorgu ile 90 kayıtlık bir tabloyu 30'arlık 3 parça halinde veritabanından alıyoruz.
Öyleyse yapmamız gereken hangi sayfayı listelemek istediğimizi belirlemek ve sorguyu ona göre göndermek,mesela
Yukarıdaki kod parçası sadece 2.sayfadaki kayıtları listelemektedir. Tek yapmamız gereken $page değişkenini dinamik olarak değiştirmek ve böylece sadece istenen sayfaları listelemek olacaktır.Anahtar nokta şu olacakKod:$page=2; $pagesize=30; //sorguyu hazırla $start=($page - 1) * $pagesize; $query="SELECT * FROM uyeler LIMIT $start,$pagesize";
Böylece,adres satırndan hangi sayfa alınırsa, o sayfa ekranda listelenecek.Kod:$page=$_GET["page"];
Şöyle bi soru aklınıza gelecektir şimdi ve gelmelidir de ..![]()
Peki adres satırına sayfa linklerini nasıl verceğiz ? Sorunun cevabı şu öncelikle tablonuzda kaç sayfalık veri olduğunu bulacaksınız,ve linkleri ona göre vereceksiniz.
ve sayfalama linkleriKod:$page=$_GET["page"]; $pagesize=30; //tüm kayıtları vt den al $query=mysql_query("SELECT * FROM uyeler"); $toplam=mysql_num_rows($query); $sayfasayisi=ceil($toplam/$pagesize);
Başka da bi şey yok !Kod:for ($i=1;$i<=$sayfasayisi;$i++){ if ($i==$page) echo $i; else echo "<a href=\"$PHP_SELF?page=$i\">$i</a> "; }
Anlattıklarım parça parça ama yukarıdaki yazıyı okuyup,biraz düşünüp taşınıp sonra bunları okuyarak parçaları birleştirip voltran'ı oluşturabilirsiniz.


LinkBack URL
About LinkBacks
Alıntı Yaparak Yanıtla

Bookmarks