ciao ho usato questo codice per impaginare 20 record per pagina.
Con il mini menu che linka alle pagine.
vorrei sapere se qualche buon'anima mi aiuta a correggere il tutto inserendo un link "successivo" "precedente" invece dei numeri.

Codice PHP:
<?php

function paging($query,$x_pag=20,$num_links=5)
{
    
 
//conteggio i record presenti
 
$query "SELECT * FROM Utenti"
 
$righe mysql_num_rows(mysql_query($query));
 if (
$righe == 0){ return false; }

 
//calcolo il numero di pagine necessarie per visualizzare i dati
 
$numpages ceil($righe/$x_pag);
 
 
//ottengo il numero di pagina, se manca lo imposto ad 1
 
$pag = isset($_GET['pag'])? $_GET['pag'] : 1;
 
 
//imposto il primo estremo del limit
 
$da = ($pag-1) * $x_pag;
 
 
//appendo il limit alla query originaria
 
$query .= " LIMIT $da,$x_pag";
 
 
//gesisco la propagazione della query string
 
$querystring '';
    foreach(
$_GET as $k => $v)
      {
       if (
$k != 'pag')
         {
           
$querystring .= "&".$k."=".$v;
         }
      }
 
 
//inizializzo una stringa vuota in cui appenderò l'output del menu'
 
$menu '';
 
//serie di condizionali in cascata per costruire il menu' 
if($numpages <= $num_links
  {
    for (
$pagina 1$pagina <= $numpages$pagina++)
      {
        if (
$pagina == $pag)
          
$menu .= "<span class=\"pag_selected\"> $pagina </span> ";
        else
          
$menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
      }
  }

//se la pag corrente è tra le prime $num_links/2 --> stampo i primi $nun_links link
else if($pag <= ceil($num_links/2))
  {
    for (
$pagina=1$pagina<=$num_links$pagina++)
      {
        if (
$pagina == $pag)
          
$menu .= "<span class=\"pag_selected\"> $pagina </span> ";
        else
          
$menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
      }
    
$menu .= "<a class=\"pag_link\" href=\"?pag={$numpages}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
  }

//se la pag corrente è tra le ultime $num_links/2 --> stampo gli ultimi $nun_links link
else if($pag > ($numpages-ceil($num_links/2)))
  {
    
$menu .= "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
    for (
$pagina=$numpages-$num_links+1$pagina<=$numpages$pagina++)
      {
        if (
$pagina == $pag)
          
$menu .= "<span class=\"pag_selected\"> $pagina </span> ";
        else
          
$menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
      }
  }

//Altrimenti la pagina corrente è una dell centrali --> stampo i $nun_links/2 link prima ed $nun_links/2 link dopo
else
  {
    
$menu .= "<a class=\"pag_link\" href=\"?pag=1{$querystring}\" title=\"Vai alla prima pagina\"> << </a> ";
    for (
$pagina $pag-ceil($num_links/2-1); $pagina <= $pag+ceil($num_links/2-1); $pagina++)
      {
        if (
$pagina == $pag)
          
$menu .= "<span class=\"pag_selected\"> $pagina </span> ";
        else
          
$menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai a pagina $pagina\"> $pagina </a> ";
      }
    
$menu .= "<a class=\"pag_link\" href=\"?pag={$pagina}{$querystring}\" title=\"Vai all'ultima pagina\"> >> </a> ";
  }

 
//restituisco il risultato della query, e l'output del menu'
 
return array(mysql_query($query),$menu);
}
questa func viene richiamata dalla mia pagina:
Codice PHP:
include('function.paging.php');    
            
//sottomissione della query (come usare mysql_query()) 
$res paging('SELECT * FROM Utenti'); 

//verifica dei risultati: $res è un array.. l'elemento zero contiene il risultato della query per la pagina corrente... 
//mentre l'elemento 1 che useremo dove ci pare (nell'esempio lo usiamo alla fine) contiene il codice del minimenu' da dare semplicemente in output 
if (!$res[0]) { echo "non ci sono dati";} 
else 

while(
$dati mysql_fetch_array($res[0])) 
     { 
                                          
$Matr $dati['Matricola'];
 } 
   } 
         
//stampa del minimenu' di link alle altre pagine 
         // (poteva essere stampato anche prima del ciclo) 
   
echo "
"
.$res[1];