Mysql
 sql >> Database >  >> RDS >> Mysql

Crea più pagine da una query MySQL

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
...