Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Paginacion

Estas en el tema de Paginacion en el foro de PHP en Foros del Web. Hola amigos tengo una variable que recojo por url y muestra todos los datos de esa bd, todo va bien simplemente que cuando quiero pasar ...
  #1 (permalink)  
Antiguo 30/06/2014, 15:11
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Paginacion

Hola amigos tengo una variable que recojo por url y muestra todos los datos de esa bd, todo va bien simplemente que cuando quiero pasar a las siguien pagina pues no muestra los resultados siguientes este es el codigo

Código PHP:
Ver original
  1. <?php
  2. if ($_GET['cat']);
  3. $servidor="--------";
  4. $usuario="---------";
  5. $password="--------";
  6. $base="-----------";
  7. $bi=$_GET['cat'];
  8. $bi = str_replace("-", " ", $bi);
  9.  
  10. //AL PRINCIPIO COMPRUEBO SI HICIERON CLICK EN ALGUNA PÁGINA
  11. if(isset($_GET['page']))
  12. {
  13.     $page= $_GET['page'];
  14. }
  15. else
  16. {
  17.     //SI NO DIGO Q ES LA PRIMERA PÁGINA
  18.     $page=1;
  19. }
  20.  
  21.  
  22. $con=mysql_connect($servidor,$usuario,$password);
  23. mysql_select_db($base,$con);
  24. $consulta =("SELECT * FROM imagenes where uno='".$bi."' || dos='".$bi."' || tres='".$bi."' || cuatro='".$bi."' || categoria='".$bi."'") or die (mysql_error());
  25. $datos=mysql_query($consulta);
  26.  
  27. //MIRO CUANTOS DATOS FUERON DEVUELTOS
  28. $num_rows=mysql_num_rows($datos);
  29.  
  30. //ACA SE DECIDE CUANTOS RESULTADOS MOSTRAR POR PÁGINA , EN EL EJEMPLO PONGO 10
  31. $rows_per_page= 68;
  32.  
  33. //CALCULO LA ULTIMA PÁGINA
  34. $lastpage= ceil($num_rows / $rows_per_page);
  35.  
  36. //COMPRUEBO QUE EL VALOR DE LA PÁGINA SEA CORRECTO Y SI ES LA ULTIMA PÁGINA
  37. $page=(int)$page;
  38.  
  39. if($page > $lastpage)
  40. {
  41.     $page= $lastpage;
  42. }
  43.  
  44. if($page < 1)
  45. {
  46.     $page=1;
  47. }
  48.  
  49. //CREO LA SENTENCIA LIMIT PARA AÑADIR A LA CONSULTA QUE DEFINITIVA
  50. $limit= 'LIMIT '. ($page -1) * $rows_per_page . ',' .$rows_per_page;
  51.  
  52.  
  53. //REALIZO LA CONSULTA QUE VA A MOSTRAR LOS DATOS (ES LA ANTERIO + EL $limit)
  54. $consulta .=" $limit";
  55. $pelicula=mysql_query($consulta);
  56.  
  57. if(!$pelicula)
  58. {
  59.         //SI FALLA LA CONSULTA MUESTRO ERROR
  60.         die('Invalid query: ' . mysql_error());
  61. }
  62. else
  63. {
  64.     //SI ES CORRECTA MUESTRO LOS DATOS
  65.     ?>
  66.                    
  67.         <?php while($row = mysql_fetch_assoc($pelicula))
  68.           {  ?>
  69.  
  70.              //datos a mostrar
  71.  
  72. <?php break;  } ?>
  73.  
  74.  
  75. // AQUI PONGO LA PAGINACION A OTRAS PAGINAS
  76.  
  77.  
  78.  
  79. <?php
  80.     //UNA VEZ Q MUESTRO LOS DATOS TENGO Q MOSTRAR EL BLOQUE DE PAGINACIÓN SIEMPRE Y CUANDO HAYA MÁS DE UNA PÁGINA
  81.      
  82.     if($num_rows != 0)
  83.     {
  84.        $nextpage= $page +1;
  85.        $prevpage= $page -1;
  86.      
  87.        ?><ul id="pagination-digg"><?php
  88.            //SI ES LA PRIMERA PÁGINA DESHABILITO EL BOTON DE PREVIOUS, MUESTRO EL 1 COMO ACTIVO Y MUESTRO EL RESTO DE PÁGINAS
  89.            if ($page == 1)
  90.            {
  91.             ?>
  92.               <li class="previous-off">Atras</li>
  93.               <li class="active">1</li>
  94.          <?php
  95.               for($i= $page+1; $i<= $lastpage ; $i++)
  96.               {?>
  97.                 <li><a href="categorias.php?cat=<?php echo $_GET['cat']; ?>?page=<?php echo $i;?>"><?php echo $i;?></a></li>
  98.         <?php }
  99.            
  100.            //Y SI LA ULTIMA PÁGINA ES MAYOR QUE LA ACTUAL MUESTRO EL BOTON NEXT O LO DESHABILITO
  101.             if($lastpage >$page )
  102.             {?>      
  103.                 <li class="next"><a href="categorias.php?cat=<?php echo $_GET['cat']; ?>?page=<?php echo $nextpage;?>">Siguiente</a></li><?php
  104.             }
  105.             else
  106.             {?>
  107.                 <li class="next-off">Siguiente</li>
  108.         <?php
  109.             }
  110.         }
  111.         else
  112.         {
  113.      
  114.             //EN CAMBIO SI NO ESTAMOS EN LA PÁGINA UNO HABILITO EL BOTON DE PREVIUS Y MUESTRO LAS DEMÁS
  115.         ?>
  116.             <li class="previous"><a href="categorias.php?cat=<?php echo $_GET['cat']; ?>?page=<?php echo $prevpage;?>">Atras</a></li><?php
  117.              for($i= 1; $i<= $lastpage ; $i++)
  118.              {
  119.                            //COMPRUEBO SI ES LA PÁGINA ACTIVA O NO
  120.                 if($page == $i)
  121.                 {
  122.             ?>       <li class="active"><?php echo $i;?></li><?php
  123.                 }
  124.                 else
  125.                 {
  126.             ?>       <li><a href="categorias.php?cat=<?php echo $_GET['cat']; ?>?page=<?php echo $i;?>" ><?php echo $i;?></a></li><?php
  127.                 }
  128.             }
  129.              //Y SI NO ES LA ÚLTIMA PÁGINA ACTIVO EL BOTON NEXT    
  130.             if($lastpage >$page )
  131.             {   ?>  
  132.                 <li class="next"><a href="categorias.php?cat=<?php echo $_GET['cat']; ?>?page=<?php echo $nextpage;?>">Siguiente</a></li><?php
  133.             }
  134.             else
  135.             {
  136.         ?>       <li class="next-off">Siguiente</li><?php
  137.             }
  138.         }    
  139.     ?></ul></div><?php
  140.     }
  141. }
  142. mysql_close($con);
  143. ?>


Muchas gracias por la ayuda.
  #2 (permalink)  
Antiguo 30/06/2014, 16:32
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Paginacion

te da algun error?
  #3 (permalink)  
Antiguo 01/07/2014, 05:08
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Paginacion

Cita:
Iniciado por xerifandtomas Ver Mensaje
te da algun error?
xerifandtomas no me da error de nada simplemente que al pasar pagina de la 1 a la 2 pues no pasa y los nuevos datos no se muestran, se muestran los mismo de la 1


Muchas gracias
  #4 (permalink)  
Antiguo 01/07/2014, 09:43
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Paginacion

Imprime la variable $limit y la consulta en la segunda hoja para ver si se ha construido correctamente.
comprueba que las variables cat y page que pasas por GET las recibes bien, a priori no veo ningun error.
  #5 (permalink)  
Antiguo 02/07/2014, 04:22
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Paginacion

Cita:
Iniciado por xerifandtomas Ver Mensaje
te da algun error?
Me e dado cuenta que al pasar a la 2 pagina hace esto por url, que creo que es correcto.

categorias.php?cat=noticias?page=2

e imprimido el cat en la 2 pagina y sale: categorias.php ??

si estoy recogiendo el valor de cat como esque me muestra categorias.php??



Muchas gracias
  #6 (permalink)  
Antiguo 02/07/2014, 04:31
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Paginacion

Cita:
Iniciado por fermin3d Ver Mensaje
Me e dado cuenta que al pasar a la 2 pagina hace esto por url, que creo que es correcto.

categorias.php?cat=noticias?page=2

e imprimido el cat en la 2 pagina y sale: categorias.php ??

si estoy recogiendo el valor de cat como esque me muestra categorias.php??



Muchas gracias
categorias.php?cat=noticias?page=2 // esto no es correcto
lo correcto seria
categorias.php?cat=noticias&page=2
o
categorias.php?cat=noticias&amp;page=2

Ten en cuenta que para separar la primera pareja de la dirección web en sí se usa el símbolo ‘?’ y para separar las restantes parejas entre sí se usa el símbolo ‘&’.

Última edición por xerifandtomas; 02/07/2014 a las 04:41
  #7 (permalink)  
Antiguo 02/07/2014, 07:33
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Paginacion

Cita:
Iniciado por xerifandtomas Ver Mensaje
categorias.php?cat=noticias?page=2 // esto no es correcto
lo correcto seria
categorias.php?cat=noticias&page=2
o
categorias.php?cat=noticias&amp;page=2

Ten en cuenta que para separar la primera pareja de la dirección web en sí se usa el símbolo ‘?’ y para separar las restantes parejas entre sí se usa el símbolo ‘&’.
Muchisima gracias xerifandtomas la verdad lo puse como me dijiste y seguia igual asi que probe esto y funciono aun asi no se si es correcto al 100% pero la verdad me funciona perfectamente


categorias.php&amp;cat=noticias&amp;page=2

y asi si funciona, pero asi no

categorias.php?cat=noticias&page=2
o
categorias.php?cat=noticias&amp;page=2

Muchas gracias por tu ayuda.

Etiquetas: mysql, paginacion, select, sql, variable
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 17:21.