Problema con paginacion en php

Hola Cuack este lo e echo yo si te bale usalo porque los escripts que pilles por hay tienen muchos fallos o hay que camviarles muchas cosas

este funciona me costo bastante hacerlo si tienes alguna duda ya saves

<?php
$base="tu base";
$con=mysql_connect("localhost","tu usuario","tu contraseña");mysql_select_db($base,$con);
if( isset( $_GET['pagina'] ) && is_numeric( $_GET['pagina'] ) )$pagina = $_GET['pagina'];
else
$pagina = 0;$cantidad = 7;
$inicial = $pagina * $cantidad;
$pegar = "SELECT * FROM tabla ORDER BY ID DESC LIMIT $inicial,$cantidad";
$cad = mysql_db_query($base,$pegar) or die (mysql_error());
$contar = "SELECT * FROM tabla ORDER BY ID DESC"; $contarok = mysql_db_query($base,$contar);
$total_records = mysql_num_rows($contarok)/7;
$pages = intval($total_records / $cantidad)/10000;
while($array = mysql_fetch_array($cad)) {
echo "<div id='total'>"."<div id='1'>".$array['campo']."</div>"."<div id='2'>".$array['campo']."</div>"."<div id='3'>".$array['campo']."</div>"."<div id='4'>".$array['campo']."</div>"."</div>"."<br /><br /><br />";
} 
$con=mysql_close($con);
echo "<p class=fuente>";
if ($pagina != 0) { 
$url = $pagina - 1; 
echo "<a href='$PHP_SELF?pagina=".$url."'>&laquo; Anterior</a>&nbsp;"; 
} else { 
echo " "; 
} for ($i = 0; 
$i <= $pages; $i++) { 
if ($i == $pagina) { 
if ($i == "0") { 
echo "<b></b>"; 
} else { 
$i = $i*1; 
echo "<b> ".$i." </b>"; 
} 
} else { 
if ($pages+$pages1+$pages2+$pages3+$pages4+$pages5) { 
echo "<div id='paginador'>"."<a href=$PHP_SELF?pagina=".$i."></a>&nbsp;<ul><li><a href=$PHP_SELF?pagina=1".$pages1.">1</a></li>&nbsp;<li><a href=$PHP_SELF?pagina=2".$pages2.">2</a></li>&nbsp;<li><a href=$PHP_SELF?pagina=3".$pages3.">3</a></li>&nbsp;<li><a href=$PHP_SELF?pagina=4".$pages4.">4</a></li>&nbsp;<li><a href=$PHP_SELF?pagina=5".$pages5.">5</a></li></ul>...16"."</div>"; //puedes modificar ...16 quitarlo o poner lo que desees
} else { 
echo "<a href='$PHP_SELF?pagina=".$i."'>"; 
$i = $i*1; 
echo $i."</a>&nbsp;"; 
} 
} 
} 
if ($pagina < $pages+16) { 
$url = $pagina + 1; 
echo "<a href='$PHP_SELF?pagina=".$url."'>Siguiente &raquo;</a>"; 
} else { 
echo " "; 
} 
echo "</p>"; 
?>
mira este es mas sencillo que el anterior y lo podras modificar a tu gusto un saludo

<?php
$base = "tu base";$con=@mysql_connect("localhost", "tu usuario", "tu contraseña"); @mysql_select_db($base,$con);
if( isset( $_GET['index'] ) && @is_numeric( $_GET['index'] ) ) 
// $index es la pagina actual 
$index = $_GET['index'];
else 
$index = 0;  
$cantidad = 7; // cantidad de resultados por página  
$inicial = $index * $cantidad; 
$pegar = "SELECT * FROM tu tabla ORDER BY ID DESC LIMIT $inicial,$cantidad"; 
$cad = @mysql_db_query($base,$pegar) or die (@mysql_error());
$contar = "SELECT * FROM tu tabla ORDER BY ID"; $contarok= @mysql_db_query($base,$contar);$total_records = @mysql_num_rows($contarok); 
$pages = @intval($total_records / $cantidad); 
// Imprimiendo los resultados 
while($array = @mysql_fetch_array($cad)) { 
echo $array['campo']. $array['campo']. $array['campo']. $array['campo']."<br>";
} 
// Cerramos la conexión a la base 
$con = @mysql_close($con); 
// Creando los enlaces de paginación 
echo "<p class=fuente>"; 
if ($index != 0) { //nota de 0 a 1 
$url = $index - 1; 
echo "<a href='$PHP_SELF?index=".$url."'>&laquo; Anterior</a>&nbsp;"; 
} else { 
echo " "; 
} for ($i = 0; $i <= $pages; 
$i++) { 
if ($i == $index) {
if ($i == "0") { 
echo "<b> </b>"; 
} else { 
$i = $i+1; 
echo "<b> ".$i." </b>"; 
} 
} else { 
if ($i == "0") { 
echo "<a href=$PHP_SELF?index=".$i.">0</a>"; 
} else { 
echo "<a href='$PHP_SELF?index=".$i."'>"; 
$i = $i+0; 
echo $i."</a>&nbsp;"; 
} 
} 
} 
if ($index < $pages) { 
$url = $index + 1; 
echo "<a href='$PHP_SELF?index=".$url."'>Siguiente &raquo;</a>"; 
} else { 
echo ""; 
} echo "</p>"; ?>
Hola francisco.

El codigo funciona perfectamente, en los escripts se hay un pequeño problemita con los numeros, pero andan bien.

Te lo agradesco mucho.
if ($pages+$pages1+$pages2+$pages3+$pages4+$pages5) { 
echo ""."<a href=$PHP_SELF?pagina=".$i."></a>&nbsp;<a href=$PHP_SELF?pagina=1".$pages1.">1</a>&nbsp;<a href=$PHP_SELF?pagina=2".$pages2.">2</a>&nbsp;<a href=$PHP_SELF?pagina=3".$pages3.">3</a>&nbsp;<a href=$PHP_SELF?pagina=4".$pages4.">4</a>&nbsp;<a href=$PHP_SELF?pagina=5".$pages5.">5</a> ...16"."";

el primer escript el problema con los numeros son los divisores los espanden clicas el 1 y se va hacia el dos haora esta bien pero sin divis y el escript numero 2 lo deves adaptar a tu gusto tiene un pequeñito fallo clicas en la pagina 1 y marca en negrita la pagina 2 etc etc pero eso tocando un poco el codigo se puede solucionar un saludo