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 :
Kod:
SELECT * FROM uyeler LIMIT 0,30
SELECT * FROM uyeler LIMIT 30,30
SELECT * FROM uyeler LIMIT 60,30
Sırasıyla ilk sorgu 0. kayıt ile 30. kayıt arasını alır.
İ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
Kod:
$page=2;
$pagesize=30;
//sorguyu hazırla
$start=($page - 1) * $pagesize;
$query="SELECT * FROM uyeler LIMIT $start,$pagesize";
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 olacak
Kod:
$page=$_GET["page"];
Böylece,adres satırndan hangi sayfa alınırsa, o sayfa ekranda listelenecek.
Şö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.
Kod:
$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);
ve sayfalama linkleri
Kod:
for ($i=1;$i<=$sayfasayisi;$i++){
if ($i==$page)
echo $i;
else
echo "<a href=\"$PHP_SELF?page=$i\">$i</a> ";
}
Başka da bi şey yok !
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.
Bookmarks