$select = select sql que devuelve la cantidad de lineas (rows)
$n_activo = numero de pagina en el que esta el usuario
$n_paginacion = numero de usuarios que se visualizan por pagina
$n_maximo = numero de paginas visibles
$url = los href llaman a esta url pasandole por get una variable llamada numero, href=$url.php?numero=".($i-1).", ese numero es el $n_activo.
Código PHP:
function dame_paginacion($select, $n_activo, $n_paginacion, $n_maximo, $url)
{
$qNumUsers = mysql_query($select);
$NumUsers = mysql_result($qNumUsers, 0);
$numero = floor($n_activo/$n_maximo)*3+1;
$paginacion_maxima = floor($NumUsers / $n_paginacion) + 1;
if($numero==1)
$string = "";
else
$string = "<td align=center><a href=$url.php?numero=".($n_activo-$n_maximo)."><font face=\"Verdana, Geneva, sans-serif\" style=\"color:#00ff00; text-decoration:none\" size=-1> ... </font></a></td>";
for($i=$numero;($i<($numero + $n_maximo))&&($i <= $paginacion_maxima);$i++)
{
if(($n_activo + 1) == $i)
$color_pagina = "FF8204"; // pagina activa
else
$color_pagina ="00ff00";
if(($i==$numero + $n_maximo - 1)||($i == $paginacion_maxima))
$string = $string."<td align=center><a href=$url.php?numero=".($i-1)."><font face=\"Verdana, Geneva, sans-serif\" style=\"color:#$color_pagina; text-decoration:none\" size=-1>".$i."</font></a></td>";
else
$string = $string."<td align=center><a href=$url.php?numero=".($i-1)."><font face=\"Verdana, Geneva, sans-serif\" style=\"color:#$color_pagina; text-decoration:none\" size=-1>".$i."</font></a> - </td>";
if(($i == $numero + $n_maximo - 1)&&($i < $paginacion_maxima))
$string = $string."<td align=center><a href=$url.php?numero=".($numero + $n_maximo - 1)."><font face=\"Verdana, Geneva, sans-serif\" style=\"color:#00ff00; text-decoration:none\" size=-1> ... </font></a></td>";
}
return $string;
}
Un saludo.