Sayfalamada mantık şu şekilde işler. Diyelim ki veribanınızda 100 tane veri var ve bunları 10 10 listelemek istiyorsunuz. Bu sayfa bilgisini bir şekilde almanız lazım. Örneğin;
listele.php?sayfa=1
listele.php?sayfa=2
....
listele.php?sayfa=10
şeklinde sayfayı alıyorsunuz.
MySQL sorgunuzda LIMIT olacak. Anladığım kadarıyla LIMIT parametresini biliyorsunuz.
SELECT * FROM tablo ORDER BY id DESC
LIMIT 0,10
Sorgu şu anlama gelir. "tablo" tablosundan tüm sonuçları çek, idye göre azalan şekilde sırala. Bu sıralama sonrasında en üstteki 10 veriyi al. Verileri alırken 0. veriden başla ve sadece 10 tanesini al. Şimdi buradan şuraya gidebiliriz.
LIMIT 0,10 : 0'dan başla 10 tane veri çek.
LIMIT 10,10 : 10dan başka 10 tane veri çek.
LIMIT 20,10 : 20den başla 10 tane veri çek.
vs .vs.
Sayfa numarasını $_GET['sayfa'] şeklinde alalım ve $sayfa değişkenine atayalım . Bir de sayfa başı veri değişkeni olarak $sayfabasiveri değişkeni olsun.
$sayfa = $_GET['sayfa'];
if($sayfa==""){
$sayfa=0;
}
$sayfabasiveri = 10;
$itibaren = $sayfa*$sayfabasiveri;Sayfayı aldık, sayfa başı verimiz belli. Artık sadece sorguya bunları entegre edeceğiz.
mysql_query("SELECT * FROM tablo ORDER BY id DESC LIMIT {$itibaren},{$sayfabasiveri}");Bu sorgu şu şekilde işleyecektir. $_GET['sayfa'] boş iken, $sayfa değişkeni 0 olacak. $itibaren değişkenimiz de 0x10= 0 olaca. Yani
LIMIT 0,10
$_GET['sayfa']=1 iken $sayfa değişkeni 1, $itibaren değişkeni 1x10=10 olacaktır. Yani
LIMIT 10,10
$_GET['sayfa']=2 iken $sayfa değişkeni 1, $itibaren değişkeni 2x10=10 olacaktır. Yani
LIMIT 20,10
Bu şekilde sayfa değerine göre sonuçların kaçıncı sonuçtan itibaren olduğunu göstermiş ve listelemiş olduk.
Mantık budur. Geliştirmek size kalmı. Güvenlik kontrolleri, linkler, düzenlemeler bu geliştirmenin içinde. Örneği mantık oluşsun diye verdim. Yüzbinlerce açığı var bu kodların