In questo »POST« dei giorni scorsi, trovi riportato del codice che avevo scritto tempo fa per un altro post ancora.
Ti riporto quel codice, ma se leggi il post magari trovi anche degli altri spunti interessanti.
Codice PHP:
// ammesso che l'URL sia del tipo
// visualizzatore.php?pag=xx
$pag = $_GET['pag'];
$tot = $_GET['tot'];
// piccolo controllo di sicurezza
if(!is_numeric($pag)) { $pag == 1;}
if(!is_numeric($tot)) { $tot == 1;}
// variabile per quantificare il numero di record per pagina
$quante = 30;
if (!$pag OR $pag == 1) {
// è la prima volta che visualizzo la pagina
// query per contare i record presenti
$sql = "SELECT COUNT(id) AS totale FROM tabella";
$query = mysql_query($sql);
$result = mysql_result($query,0,'totale');
// liberi risorse
mysql_free_result($query);
// numero pagine necessarie per visualizzare tutti i record
$tot = ceil($result);
// definisco gli estremi del LIMIT
$min = 1;
$max = $quante;
} else {
// ho già tutto quello che mi serve per definire il LIMIT
$min = 1 + $quante;
$max = $quante * $pag;
}
$sql = "SELECT * FROM tabella LIMIT $min, $max";
$query = mysql_query($sql);
while ($fetch = mysql_fetch_array($query)) {
// estrapoli i dati e stampi la tabella
}
// liberi risorse
mysql_free_result($query);
// stampi il menu di navigazione
if ($pag > 1) {
$prima = $pag - 1;
echo "
<a href=\"visualizzatore.php?pag=$prima&tot=$tot\">Indietro</a> :::
";
}
if ($pag < tot) {
$dopo = $pag + 1;
echo "
<a href=\"visualizzatore.php?pag=$dopo&tot=$tot\">Avanti</a>
";
}
Il barbatrucco sta nel fatto che la pagina che visualizza i risultati, trasporta nella URL alcune variabili (metodo GET) che sono quelle che ti permettono di richiamare sempre la stessa pagina ma di visualizzare risultati differenti.
Forzare una variabile che deve essere numerica affinché lo sia, è un metodo semplice ma efficace per evitare anche degli attacchi di hacking al DB.
Lo puoi fare anche con la funzione is_numeric(), che anzi reputo buona per casi come questo, mentre INT è più spesso utilizzato direttamente nella stringa SQL della query.
Ultima precisazione: GET permette il passaggio di variabili attraverso la query string della URL (w ww.sito.tld/pagina.php?variabile1=var1&variabile2=var2).
Le variabili sono in chiaro e possono raggiungere il limite massimo di 255 caratteri.
POST invece salva tutte le variabili in una allocazione di memoria del server e non ci sono limiti di spazio così stringente come il GET.