hola! hoy en el trabajo tuve el mismo problema... pero lo resolví, aunque no del modo preciso que tu esperas....
te coloco este código, haber si le entiendes y descubres como es el comportamiento... para que tu lo apliques!
Código PHP:
<?php
$sql = 'SELECT DISTINCT `autor` FROM `letras` ORDER BY `autor` ASC';
$q = mysql_query($sql);
$all = mysql_num_rows($q);
$per = 20;
$begin = $cur * $per;
$cur = (int)$_GET["paginas"];
$sql .= " LIMIT $begin,$per";
$q= mysql_query($sql) or die(mysql_error());
$sep='|';
$noop = '...';
$begins = '<<';
$ends = '>>';
// -------------
$count=ceil($all / $per);
$pages=array();
if ($count<=1)
{
$pages[]=$noop;
}
else
{
//$pages[]=a(link_to(dirname($pre)), $begins);
if ($cur > 1)
{
$ss=$cur-10<=0? 1: $cur-10;
$pages[]='<a href="/pagina-autor/'.($ss).'/">'.$begins.'</a>';
$pages[]=$sep;
}
$break=0;
$z=$cur;
for ($i=$z; $i<($cur + 10);++$i)
{
//if ($i>=10) break;
//$url=link_to($pre.$i);
$class=($i==(int)$cur? 'here': '');
//$pages[]=a($url,$i,array('class'=>$class));
$pages[]='<a href="/pagina-autor/'.$i.'/" class="'.$class.'">'.$i.'</a>';
}
if ($pages[sizeof($pages)-1]!==$sep)
{
$pages[]=$sep;
}
//$pages[]=a(link_to($pre.(--$count)), $ends);
$pages[] = '<a href="/pagina-autor/'.($cur + 10).'/">'.$ends.'</a>';
}
echo join(' ', $pages);
?>