Weno yo te dejo aki un sistema de paginacion que uso yo

por si te kieres basar en ello:
Código PHP:
<?PHP
include("configuracion.php");
$connection = mysql_connect($host, $usuario, $password) or die ("No se puede conectar con la base de datos");
$db = mysql_select_db($base_de_datos, $connection) or die ("No se puede seleccionar la base de datos");
$limit = 25; //aki el limite que tu kieres
$sqlcount= "Select * From noticias ORDER BY date DESC"; //la consult apon la que tu kieras
$sql_countresult = mysql_query($sqlcount, $connection) or die ("No se puede ejecutar la consulta");
$totalrows = mysql_num_rows($sql_countresult);
if(empty($page))
{
$page = 1;
}
$limitvalue1 = $page*$limit-($limit);
$sql = "Select * From noticias ORDER BY date DESC LIMIT $limitvalue1, $limit";
$sql_result = mysql_query($sql, $connection) or die ("No se puede ejecutar la consulta");
while ($row = mysql_fetch_array($sql_result))
{
}
if($page != 1)
{
$pageprev= $page - 1;
}
else
{
}
echo "<hr size=1 color=09215F width=95%>";
echo "<table border=0 cellpadding=0 cellspacing=0 width=99%><tr><td>";
echo "<font size=1 face=verdana color=FF9D02><b>Página :</b></font>";
$numofpages = $totalrows/$limit;
for($i= 1; $i <= $numofpages; $i++)
{
echo "<font size=1 face=verdana><A HREF=\"noticias.php?page=$i\" class=NOTICIAS> $i </font></A>";
}
if($totalrows%$limit != 0)
{
echo "<font size=1 face=verdana><A HREF=\"noticias.php?page=$i\"> $i </font></A>";
}
echo "</td></tr></table>";
if(($totalrows-($limit*$page)) > 0)
{
$pagenext = $page + 1;
}
mysql_free_result($sql_result);
mysql_close($connection);
?>
Ya ves que es muy sencillo

espero que te sirva de ayuda.