Io di solito uso qualcosa di simile:
<? $sql="SELECT * FROM tabella WHERE condizione"; if ($npag=="") $npag=1; $record_pagina = 50; // <- record da visualizzare in ogni pagina if (!isset($start)) $start = 0; // paginazione $risultati_totale=mysql_query($sql); $sql.=" ORDER BY ordine LIMIT $start,$record_pagina"; $num_totale = @mysql_num_rows($risultati_totale); $numero_pagine = ceil($num_totale/$record_pagina); $celle=0;?> <?if ($numero_pagine > 1) {?> **<font size="1" color="#333366"> Pagine <? for ($pagina = 1; $pagina <= $numero_pagine; $pagina++) { ?> <? if ($npag==$pagina) { ?> **<font size="2">[<?echo $pagina; ?>]</font>** <? } else { ?> [[url="<? echo $PHP_SELF; ?>?start=<? echo (($pagina-1)*$record_pagina); ?>&npag=<? echo $pagina; ?>&idcategoria=<? echo $idcategoria; ?>&idmercato=<? echo $idmercato; ?>"]<? echo $pagina; ?>] <? } ?> <? } ?> </font>** <? } ?>Dean