hola a todos/as. tengo este sistema de paginación:
/////////////////////////////////////////////////////////////////////////////////////////////////////
Defino cuantos registros tendrá cada página:
Código PHP:
$registros = 12;
Compruebo si la variable $pagina (indica el numero de pagina actual) esta definida, si no es así le damos el valor 1 ósea que si no se paso por la url la variable $pagina (por ejemplo: "seccion.php?pagina=2") entramos a la pagina 1 directamente... La variable $inicio indica desde que registro empezar a mostrar los datos
Código PHP:
$pagina = $_GET["pagina"];
if (!$pagina) {
$inicio = 0;
$pagina = 1;
}
else {
$inicio = ($pagina - 1) * $registros;
}
obtenemos el numero de resultados totales...
Código PHP:
$resultados = mysql_query("SELECT id FROM productos WHERE categoria= '$cat'");
$total_registros = mysql_num_rows($resultados);
limitamos los resultados devueltos:
Código PHP:
$resultados = mysql_query("SELECT * FROM productos WHERE categoria= '$cat' ORDER BY nombreDESC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
Mostramos los resultados:
Código PHP:
while($articulo=mysql_fetch_array($resultados)) {
echo "<b>".$articulo["titulo"]."</b><br>";
echo "<font color='#666666'>".$articulo["descripcion"]."</font><br><br><br>";
}
y por último paginamos:
se divide en tres partes, primero la que muestra el link a la pagina anterior
Código PHP:
if(($pagina - 1) > 0) {
echo "<a href=seccion.php?cat='$cat&pagina=".($pagina-1)."'>< Anterior</a> ";
}
El link a la pagina anterior será visible siempre y cuando no estemos en la primer pagina ($pagina - 1) > 0). La segunda parte del navegador de paginas seria la que muestra la cantidad de paginas...
Código PHP:
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i) {
echo "<b>".$pagina."</b> ";
} else {
echo "<a href=seccion.php?cat='$cat'&pagina=$i'>$i</a> ";
} }
Y la tercer parte es la que muestra el enlace a la pagina siguiente...
Código PHP:
if(($pagina + 1)<=$total_paginas) {
echo " <a href=seccion.php?cat='$cat'&pagina=".($pagina+1)."'>Siguiente ></a>";
}
bien. la paginación la hace correcta. cuál es el problema? el problema es que si yo tengo 58 páginas aparecerá
1[2][3][4][5][6][7][8][9][10][11][12][13][SIGUIENTE] y así hasta la 58. Yo lo que quiero es que aparezcan solo las 5 siguientes y las cinco anteriores a la que se está y después los enlaces [anterior] y [siguiente] como ahora pero además [primero] y [último]
me podéis echar una mano? gracias a todos/as


