suddividere query in pagine

come faccio a suddividere una query per avere 30 record su una pagina [e se sono d + a creare un link ad un'altra pagina] e a mostrare i record da 31 a 60 sulla pagina 2 e così via? :)

inviato 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

La prima cosa da fare e calcolare il numero totale dei risultati (record), questo serve per capire se ci saranno ulteriori pagine oltre a quella mostrata. Nel caso andrà costruito un link che punta allo stesso script con un parametro passato via $_GET che informa della numero della pagina seguente. (es. risultati.php?pag=2)

Per limitare il numero dei risultati restituiti da una query si usa la clausola LIMIT. Inoltre è importante ordinare i risultati secondo un determinato criterio, altrimenti MySQL non è tenuto a rispettare nessun ordine. Ad esempio:

Pagina 1

SELECT * FROM nome_tabella ORDER BY nome_campo LIMIT 0,30

restituirà trenta righe partendo dalla prima riga (0)

Pagina 2

SELECT * FROM nome_tabella ORDER BY nome_campo LIMIT 30,30

restituirà trenta righe partendo dalla trentunesima riga (30)

Pagina 3

SELECT * FROM nome_tabella ORDER BY nome_campo LIMIT 60,30

restituirà trenta righe partendo dalla sessantunesima riga (60)

Quindi lo script deve solo recuperare dalla variabile $_GET['pag'] il numero della pagina corrente e creare la query corretta.

$query = "SELECT * FROM nome_tabella ORDER BY nome_campo LIMIT " . (30 * $_GET['pag']) . ",30";

(ovviamente è solo un esempio molto semplificato ma il concetto è questo

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

lol non ci avevo pensato a fare così 30 * numero pagina  :D grazie gianni

risposto 10 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda