Beh, in una query SQL c'è il comando finale chiamato LIMIT, che indica tra tutte le rige trovate, massimo quante tornarle, oppure di ritornarne solo a partire dalla tal numero.
Ora, immagino tu stia creando una specie di form per la ricerca, che poi visualizza in una tabella i risultati.
Io, semplicemente, quando passi i criteri di ricerca, li salverei nella sessione, così anche se, per qualche ragione, l'utente ricarica la pagina, avrà la sua query già impostata. A questo punto aggiungi una select con i valori:
Codice PHP:
<select name="returnedRows" onchange="submitMyQuery(this)">
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="">Tutti</option>
</select>
nella pagina, sotto la tabella (oppure sopra, come preferisci).
submitMyQuery(sel) semplicemente chiama un window.location.href sullo script PHP che setta le variabili per la query, dove salverai nella sessione:
$_SESSION['query_keys']['limit'] = valore passato
Poi nella pagina della tabella quando esegui la query aggiungi:
Codice PHP:
$query; //Metti che qui ci sia già la query completa di WHERE
if($_SESSION['query_keys']['limit'])
{
$query .= " LIMIT 0,".$_SESSION['query_keys']['limit'];
}
A questo punto, la seconda cosa da implementare è il range di righe da visualizzare (per esempio tu hai 100 record che vuoi visualizzare in gruppi da 20), usando la prima chiave di limit determini il gruppo:
Quando generi la pagina fai anche un:
Codice PHP:
$query = "SELECT COUNT(id) FROM Tua_tabella";
con tutti filtri WHERE che l'utente ha chiesto, per avere il numero totale di righe.
A questo punto, dividi il tot per il range che l'utente ha scelto per avere il numero di pagine di tabelle, e stampi un gruppo di link in fondo (o sopra) la pagina. (come quello in fondo a questo forum)
ognuno di questi link richiama la pagina, con tutte le sue query nell'url, aggiungendo "&pag=Numero_del_link".
a questo punto la query di sopra diverrà:
Codice PHP:
$pag = $_GET['pag'] ? $_GET['pag'] : 0;
if($_SESSION['query_keys']['limit'])
{
$query .= " LIMIT $pag,".$_SESSION['query_keys']['limit'];
}
spero di esserti stato utile