Intanto se ne vuoi uno funzionante di giro il mio: 
"paginazione.inc.php"
	Codice PHP:
	
<?php
function pagination_3($total_pages,$page,$webpage){ //imposto la mia $webpage come parametro formale
        
$pagination = ""; 
    if($total_pages!=1){ 
        if($page>'1') 
            { 
          $pagination.="[url=".$webpage."][size="1"]Prima[/size][/url] 
                                 [url=".$webpage."]Precedente[/url]"; 
            } 
        //Impostiamo il massimo numero di links di partenza da visualizzare nella pagina. 
             $maximum_links = 10; 
          //Se sono necessarie meno pagine rispetto al numero massimo 
           if($total_pages<=$maximum_links) 
            { 
               //Il numero massimo di links che occorreranno saranno pari al numero totale di pagine + 1 
                $maximum_links = $total_pages+1; 
            } 
            //Se ne sono necessarie di piu, allora: 
           else{ 
                  //$maximum_links +1 
                  $maximum_links=$maximum_links+1; 
                   if($page>=$maximum_links){ 
                       $maximum_links=$page+1; 
                    } 
              } 
        for ($i=1;$i<$maximum_links;$i++) 
               { 
                   if($i==$page){ 
                $pagination.="<a>".$i."</a>"; 
            } 
            else{ 
                $pagination.= "[url=".$webpage."]".$i."[/url]"; 
                        } 
        } 
            //next e ultima pagina; 
        if(($page >="1")&&($page!=$total_pages)){ 
            $pagination.= "[url=".$webpage."]Successiva[/url] 
                                        [url=".$webpage."][size="1"]Ultima[/size][/url]"; 
        } 
    } 
    else{ 
        $pagination.=""; 
    } 
    return($pagination); 
} 
//il risultato di questa paginazione è il seguente :
//prima PREV 1 2 3 4 5 6 7 8 9 10 Next ultima 
?>
 
Poi nella pagina dove voglio che compaia la paginazione metto queste cose:
	Codice PHP:
	
<?php
        require "include/paginazione.inc.php";
        $webpage = basename($_SERVER['PHP_SELF']);
        $page = (!isset($_GET['page']))? 1 : $_GET['page'];
        $queryprima=oci_parse($con,"select count(*) from cons_esami_assegnare where sede='$sede_utente'");
        oci_execute($queryprima);
        while (($ris=oci_fetch_array($queryprima, OCI_ASSOC))){
    foreach ($ris as $pippo){
             }
           }
    $max_results = 10;//numero di elementi da visualizzare per pagina.
    $total_results = $pippo;
    $total_pages = ceil($total_results / $max_results);
    $from = (($page * $max_results) - $max_results);
    $a= ($max_results * $page);
             $query_tab1=oci_parse($con, "select r, c1, c2, c3, c4, c5, c6, c7 from (select rownum r, ..... from cons_esami_assegnare where sede='$sede_utente' and rownum <= $a)
where r > $from");    
oci_execute($query_tab1);
while (($riga=oci_fetch_array($query_tab1, OCI_NUM + OCI_RETURN_NULLS))){
echo ("<tr><td align='center'>".$riga[1]."</td><td align='center'>".$riga[2]."</td><td align='center'>".$riga[3]."</td><td align='center'>".$riga[4]."</td><td align='center'>".$riga[5]."</td><td align='center'>".$riga[6]."</td><td align='center'>".$riga[7]."</td></tr>\n");
}    
echo("</tbody>");
echo("<tfoot><tr><td colspan='7'></td></tr>");
echo ("<tr><td align='center' colspan='7'>".pagination_3($total_pages, $page, $webpage)."</td></tr>");
?>
 
Il mio db è oracle...ma puoi adattarlo tranquillamente a mysql (se usi qst).
Cmq le grosse differenze tra i due sono nel conto dei record che restituisce la query. Io ho dovuto fare una query con la count mentre tu potresti usare tranquillamente mysql_num_row. Altro cosa diversa è che io ho dovuto usare rownum nella query ma tu puoi usare tranquillmamente limit 
Spero di esserti stata utile...
Se non ti funge, non lo capisci o semplicemente vuoi sistemare il tuo posta il codice 
Ciao ciao