Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2008, 10:26
Avatar de estibaliz2006
estibaliz2006
 
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 6 meses
Puntos: 1
completar sistema de paginacion

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