Chi di voi si è trovato davanti al problema di suddividere in pagine il risultato di una query?
La soluzione sta in un semplice script basato su variabili GET (quelle passate all'URL, all'indirizzo).

Consideriamo $nrecord la variabile che contiene il numero di record estratti.
es: $nrecord = @mysql_num_rows($query_handle);

Dobbiamo decidere il numero di elementi da visualizzare per singola pagina. Per far decidere all'utente è sufficiente gestire il valore come variabile GET. Poichè sono vagabondo e nell'esempio non ho voglia di inserire più di 3 righe, opterò per un valore fisso.

Per singola pagina dobbiamo usare il costrutto LIMIT del linguaggio SQL per visualizzare il range di valori interessati.
La forma sintattica è: LIMIT record_da_cui_partire, numero_di_record_da_prendere

Di seguito posterò l'esempio commentato.

________________________________________________
$cn = @mysql_query($host,$user,$pass);
@mysql_select_db($db,$cn);
$nrecord = @mysql_query(@mysql_query("SELECT * FROM articles",$cn)); /* ecco il numero complessivo di elementi */

$prendi = 10; // intervallo

if(isset($_GET['PAGE']))
   $PAGE=$_GET['PAGE']; // pagina corrente
else
   $PAGE=1;

$start = ($PAGE*$prendi)-$prendi; /* record da cui iniziare ad estrarre */

$records = @mysql_query("SELECT * FROM articles LIMIT $start,$prendi);
while($rigo=@mysql_fetch_array($records)){
...
}

// ora stampiamo il numero di pagine
echo "Pagine: ";
for($i=1;$i<=$npage+1;$i++){
  if($i==$PAGE)
    echo "[ $i ]"; /* la pagina corrente non la linko */
  else
    echo "[ <a href="?PAGE=$i">$i</a> ]";
}
________________________________________________