Som du gissat måste du använda LIMIT
sökord
.
Den accepterar två värden (quoting) :
- förskjutningen av den första raden som ska returneras
- det maximala antalet rader att returnera
I ditt fall måste du använda något liknande detta för första sidan :
select * from your_table order by ... limit 0, 50
Och sedan till den andra sidan :
select * from your_table order by ... limit 50, 50
Och för den tredje :
select * from your_table order by ... limit 100, 50
Och så vidare;-)
Redigera efter kommentaren: för att få sidnumret måste du få det från dina webbadresser, som skulle se ut så här :
http://www.example.com/page.php?pagenum=2
Sedan kommer du att beräkna det första värdet för gränsen, :
$offset = 50 * intval($_GET['pagenum']);
Och injicera det i din fråga :
select * from your_table order by ... limit $offset, 50
Att konstruera webbadresser till de olika sidorna är nu en fråga om att skaffa webbadresser som dessa :
http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...
Om du vet att du har 700 element och 50 per sida, har du 700/50 sidor;-)
Så, något sådant här borde göra susen :
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
Naturligtvis är 700 ett värde som förmodligen kan ändras, och som inte bör hårdkodas:det bör fastställas från databasen med hjälp av en count
fråga :
select count(*) as total
from your_table
...