Io uso da anni questo codice, puoi vederlo da qui : http://www.mercatinoitaliano.com/
<?
$pag_count = mysql_query("SELECT COUNT(id) FROM tuatabella");
$pag_res_count = mysql_fetch_row($pag_count);
$pag_tot_records = $pag_res_count[0]; // numero totale di records
$pag_per_page = 30; // risultati per pagina(secondo parametro di LIMIT)
$pag_tot_pages = ceil($pag_tot_records / $pag_per_page); // numero totale di pagine
$pag_current_page = (!$_GET[pgn]) ? 1 : (int)$_GET[pgn]; // pagina corrente
if($_GET[pgn]<1 || $_GET[pgn]>$pag_tot_pages){$_GET[pgn]=1;$pag_current_page=1;}
$pag_primo = ($pag_current_page - 1) * $pag_per_page; // primo parametro di LIMIT
$pag_paginazione ="Page ($pag_tot_pages)[ ";
$_GET[pgn]=(int)$_GET[pgn];
$ini=$_GET[pgn];
if($_GET[pgn]<3){$ini=3;}
else if ($_GET[pgn]>($pag_tot_pages-2)){$ini=$pag_tot_pages-2;}
if($_GET[pgn]>4 && $pag_tot_pages>6){$pag_paginazione .= "<<";}
if($_GET[pgn]>3 && $pag_tot_pages>5){$pag_paginazione .= "<";}
for($i = $ini-2; $i <= ($ini+2); $i++){
if($i==$_GET[pgn]){$pag_paginazione .="".$_GET[pgn]."";}
if ($i>0 && $i<=$pag_tot_pages && $i!=$_GET[pgn]){$pag_paginazione .= "$i";}
}
if($_GET[pgn]<($pag_tot_pages-2) && $pag_tot_pages>5){$pag_paginazione .= " >";}
if($_GET[pgn]<($pag_tot_pages-3) && $pag_tot_pages>6){$pag_paginazione .= ">>";}
$pag_paginazione .= " ]";
$query_posts = "SELECT * FROM tuatabella ORDER BY user_id DESC LIMIT $pag_primo, $pag_per_page";
$result_posts = mysql_query($query_posts) or die("Can't do query_posts: " . mysql_error());
while ($row_posts = mysql_fetch_array($result_posts)) {
//.....
//pagina
//.....
}
?>
<table width="100%" cellspacing="1" cellpadding="2" class="testo" align="center">
<tr bgcolor="FFFFFF">
<td height="28" width="26%" style="margin-left:1px;" align="left">
<div align="left"><? echo "Pagina $pag_current_page di $pag_tot_pages"; ?></div>
</td>
<td height="28" width="1%" style="margin-left:1px;" align="left">
<div align="right"></div>
</td>
<td height="28" width="73%" style="margin-right:1px;" align="right">
<div align="right"><? echo $pag_paginazione.""; ?></div>
</td>
</tr>
</table>
![]()