Foros del Web » Programando para Internet » PHP »

Problemas con paginacion de resultados con php

Estas en el tema de Problemas con paginacion de resultados con php en el foro de PHP en Foros del Web. Hola amigos tengo una duda con una paginacion, todo funciona ok, pero cuando hay muchos resultados se corre demasiado hacia los lados por ejemplo si ...
  #1 (permalink)  
Antiguo 28/08/2008, 08:55
Avatar de kernelcom-com  
Fecha de Ingreso: mayo-2008
Ubicación: Lima
Mensajes: 216
Antigüedad: 15 años, 10 meses
Puntos: 3
Problemas con paginacion de resultados con php

Hola amigos tengo una duda con una paginacion, todo funciona ok, pero cuando hay muchos resultados se corre demasiado hacia los lados por ejemplo

si hay 30 resultados abajo los numeritos serian
sabiendo que son 10 paginas por pagina

Atras 1 2 3 Adelante

Pero si hay mas de 800 resultados existen demasiados resultados.

Atras 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Adelante

y me incomoda lo ideal seria que aparescan asi

Atras 1 2 3 4 .... 16 17 18 Adelante algo asi

Como podria conseguir eso aqui les paso la secuencia y el scrip completo.

Código PHP:
for ($i 0$i<($pages 1); $i++) 
    {
        if (
$i == $pg
        {
        echo 
"<font><b> &nbsp; $i &nbsp;</b></font>";
        }
        else 
        {
        echo 
"<font><a href='?accion=buscar&pg=".$i."&opcion=".$_GET[opcion]."&palabra=".$palabra."'>".$i."</a>&nbsp;</font>";
        }
    } 

-----------------------------------

ATRAS
Código PHP:
//creando los enlaces de paginacion de resultados
// ------------- Atras ---------------------------------------------------------------------------------------//
    
echo "<center><p>";
    if (
$pg <>0)
    {
        
$url $pg 1;
        echo 
"<font><a href='?accion=buscar&pg=".$url."&opcion=".$_GET[opcion]."&palabra=".$palabra."'>&laquo; Anterior</a>&nbsp;</font>";
    }
    else 
    {
        echo 
" ";
    }
// ----------------------------------------------------------------------------------------------------------// 
MEDIO
Código PHP:
for ($i 0$i<($pages 1); $i++) 
    {
        if (
$i == $pg
        {
        echo 
"<font><b> &nbsp; $i &nbsp;</b></font>";
        }
        else 
        {
        echo 
"<font><a href='?accion=buscar&pg=".$i."&opcion=".$_GET[opcion]."&palabra=".$palabra."'>".$i."</a>&nbsp;</font>";
        }
    } 
ADELANTE
Código PHP:
    if ($pg $pages
    {
        
$url $pg 1;
        echo 
"<font><a href='?accion=buscar&pg=".$url."&opcion=".$_GET[opcion]."&palabra=".$palabra."'>Siguiente &raquo;</a></font>";
    }
    else 
    {
        echo 
" ";
    }
    echo 
"</p></center>"
  #2 (permalink)  
Antiguo 28/08/2008, 09:31
 
Fecha de Ingreso: agosto-2008
Ubicación: Santa Fe
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con paginacion de resultados con php

Mira yo te propongo una solución, ya que tb tuve este mismo proble y lo solucione con un codigo propio porque de los que habia en la web ninguno me convencia.

1) Primero debes saber la cantidad de páginas (veo que ya lo sabes)
2) Los botones que yo pongo son: inicio, anterior, siguiente y final. Junto a las 10 páginas anteriores a la actual y 10 páginas siguientes.
3) Si el numero de paginas supera en 10 a la actual le agrego el boton +10
4) Si el numero de paginas supera en 100 a la actual le agrego el boton +100
5) Los mismo para atras, o sea -10 y -100

un ejemplo de mi paginacion seria:

|< < -100 -10 ... 226 227 228 229 230 231 232 233 ... +10 +100 > >|

Es sólo ponerse a pensar a desarrollar el código que no es muy complicado

Saludos y suerte
  #3 (permalink)  
Antiguo 28/08/2008, 11:15
Avatar de kernelcom-com  
Fecha de Ingreso: mayo-2008
Ubicación: Lima
Mensajes: 216
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Problemas con paginacion de resultados con php

gracias por tu buena respuesta, pero me gustaria me lo puedas explicar en codigo php si es mucha molesta, gracias amigo.

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:11.