Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/02/2013, 21:32
awik
 
Fecha de Ingreso: febrero-2013
Mensajes: 78
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Como Hacer paginación en php

Cita:
Iniciado por Triby Ver Mensaje
Lo que hago normalmente:

1- Si el total de páginas es menor que la cantidad de enlaces a mostrar, entonces inicio = 1, final = total de páginas y me brinco los siguientes pasos
2- inicio = total de páginas menos la mitad de los enlaces que se van a mostrar; en tu caso, 5
3- Si inicio < 1, entonces inicio = 1
4- final = inicio + (total de enlaces a mostrar ; en tu caso, 10
5- Si final > total de páginas, entonces, final = total de páginas y inicio = final - 10

Con esto, realmente se mostrarán 11 enlaces, pero, el número de página actual quedará al centro, siempre que no esté cerca de 1 o del total de páginas.

Aparte de eso, me gusta agregar siempre el enlace a primera y última página, cuando sea necesario

Ejemplo: Página 1 de 20 (No es necesario la primera)
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - Siguiente - Última

Ejemplo: Página 8 de 20 (Se necesita primera y última)
Primera - Anterior - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - Siguiente - Última

Ejemplo: Página 19 de 20 (No es necesario la última)
Primera - Anterior - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - Siguiente

Hola mira

te entendi mas o menos

eh logrado esto , te pondre el codigo donde defino la pagina
el total de paginas , el numero de paginas que quiero que salga ( no el total )
etc




Código PHP:
Ver original
  1. $registros=1;
  2. $pagina=$_GET["num"];
  3. if (is_numeric($pagina))
  4. $inicio=((($pagina-1)*$registros)+1);
  5. else
  6.    
  7. $inicio=1;
  8.  
  9.  
  10.    
  11. $paginas = ceil($rs/$registros);
  12.  
  13. $juas=5;


ahora te pondre donde sale la paginacion


Código PHP:
Ver original
  1. <?php
  2.  
  3. if($pagina>1)
  4.            
  5.             echo  "<a href='a.php?num=". ($pagina-1) ."' >Anterior</a> ";
  6.        
  7.          
  8.          
  9.            
  10.            for ($cont=$inicio;$cont<=$juas;$cont++)
  11.         {
  12.              if($cont ==$pagina)
  13.                
  14.                 echo $cont." ";
  15.                 else
  16.                
  17.                 echo  "<a href='a.php?num=". $cont ."' >$cont</a> ";
  18.                
  19.                
  20.            
  21.             }
  22.                
  23.                 if (0>$inicio)
  24.                 $inicio=0;  // para evitar que se salga de rango
  25.                 else
  26.                 if ($pages<$final)
  27.                 $final=$pages;  // p
  28.                
  29.                
  30.                
  31.                
  32.            
  33.            
  34.                if($pagina<$paginas)
  35.                o();
  36.                echo  "<a href='a.php?num=". ($pagina+1) ."' >Siguiente</a>";
  37.                
  38.         ?>


hasta el momento me funciona asi

al momento de entrar ala lista
me sale UN usuario por cada página ( puse solo para un registro por pagina para evitarme algunos problemas y que funcione bien )

al momento de entrar sale asi



1 - 2 - 3 - 4 - 5 Siguiente

ok todo bien ahi
cuando eligo el numero 2 o presione ´´ Siguiente , ahora pasa a ser asi


Anterior 2 - 3 - 4 - 5 Siguiente ,

todo bien hasta aqui... y asi sucesivamente ,

pero lo que aun no eh podido lograr es que
el numero 5 avance ..... eh intedo de varias formas pero no lo logro

osea me refiero a que quede asi


Anterior 2 - 3 - 4 - 5 - 6 Siguiente ,



Como tengo solo 12 registros , necesito que cada ves que aprete siguiente
el numero 5 suba , luego a 6 , a 7 y asi hasta llegar al numero 12
cuando llegue al numero 12 , el boton Siguiente desaparece eso ya esta

lo que me falta es que el 5 avance .... aun no lo eh logrado

Última edición por awik; 27/02/2013 a las 21:37