Come hai intuito, devi usare il LIMIT
parola chiave
.
Accetta due valori (quoting) :
- l'offset della prima riga da restituire
- il numero massimo di righe da restituire
Nel tuo caso, dovrai usare qualcosa di simile per la prima pagina :
select * from your_table order by ... limit 0, 50
E, poi, per la seconda pagina :
select * from your_table order by ... limit 50, 50
E per il terzo :
select * from your_table order by ... limit 100, 50
E così via;-)
Modifica dopo il commento : per ottenere il numero di pagina, dovrai riceverlo dai tuoi URL, che assomiglierebbero a questo :
http://www.example.com/page.php?pagenum=2
Quindi, calcolerai il primo valore per il limite, :
$offset = 50 * intval($_GET['pagenum']);
E iniettalo nella tua query:
select * from your_table order by ... limit $offset, 50
Costruire URL per le diverse pagine è ora una questione di ottenere URL come questi :
http://www.example.com/page.php?pagenum=0
http://www.example.com/page.php?pagenum=1
http://www.example.com/page.php?pagenum=2
...
Se sai di avere 700 elementi e 50 per pagina, avrai 700/50 pagine;-)
Quindi, qualcosa del genere dovrebbe funzionare :
for ($i=0 ; $i<700/50 ; i++) {
// Use http://www.example.com/page.php?pagenum=$i as URL
}
Ovviamente, 700 è un valore che probabilmente può cambiare e non dovrebbe essere codificato:dovrebbe essere determinato dal database, utilizzando un count
domanda :
select count(*) as total
from your_table
...