Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 22 Octubre 2017, 17:25 pm



Título: Como monstrar de 5 en 5 registros de un sql
Publicado por: SrTrp en 22 Octubre 2017, 17:25 pm
Que tal bueno lo que quiero hacer es que estar cambiando de "pagina" por así decirlo ir ejemplo en index.php?page=1 se vean los 5 primeros campos luego cuando ejecute a la siguiente pagina index.php?page=2  salgan los siguientes 5 campos 6,7,8..
como podría logras esto?
llevo algo así pero no se como mejorar lo.
Aqui esta el codigo donde estoy monstrando los campos
Código
  1. if($pagina == 1){
  2.  $limitante += 5;
  3. }else{
  4.  $limitante = 0;
  5. }
  6.  
  7. $sql = "SELECT usuario, puntos FROM ranking order by puntos desc LIMIT ".$limitante.",5";
  8. $result = $conn->query($sql);
  9.  
  10. $number = 1;
  11.  
  12.  if ($result->num_rows > 0) {
  13.    echo "<table  class=tabla>";
  14.    while($rower = $result->fetch_assoc()) {
  15. ......
  16.  

Mi javascript, la variable pagina es igual al $_GET al iniciar la pagina te manda luego luego el index.php?page=1
El cd es el valor que mando con el boton ya sea de siguiente o anterior.
Código
  1. var pagina;
  2. pagina=<?php echo $pagina; ?>;
  3. function page(cd){
  4.  if(cd == 1){
  5.    pagina+=1;
  6.    location.href ="/index.php?page="+pagina;    
  7.  }else{
  8.    if(pagina <= 1){
  9.        location.href ="/index.php?page=1";  
  10.    }else{
  11.      pagina-=1;
  12.        location.href ="/index.php?page="+pagina;  
  13.    }
  14.  
  15.  }
  16.  
  17. }
  18.  


Título: Re: Como monstrar de 5 en 5 registros de un sql
Publicado por: ivancea96 en 22 Octubre 2017, 17:34 pm
Qué dices de:
Código
  1. $limitante = ($pagina - 1) * 5;


Título: Re: Como monstrar de 5 en 5 registros de un sql
Publicado por: engel lex en 22 Octubre 2017, 17:39 pm
Y también has una conversión a int de eso para evitar una inyección, porque ese código pasa un get dircto al MySQL y esa es una forma de ser hackeado


Título: Re: Como monstrar de 5 en 5 registros de un sql
Publicado por: SrTrp en 22 Octubre 2017, 19:02 pm
Qué dices de:
Código
  1. $limitante = ($pagina - 1) * 5;
Esque si me sirve el $limitante +=5; el detalle es que quiero crear una condición que cada vez que cambie la pagina se vaya sumando.

Y también has una conversión a int de eso para evitar una inyección, porque ese código pasa un get dircto al MySQL y esa es una forma de ser hackeado
Gracias eso haré!


Título: Re: Como monstrar de 5 en 5 registros de un sql
Publicado por: ivancea96 en 22 Octubre 2017, 19:34 pm
Tienes 2 opciones:
-Si quieres que el usuario solo pueda avanzar páginas de 1 en 1, entonces guarda la página actual en la sesión del usuario y le vas sumando o restando 5 según el parámetro. A esto no le veo sentido.
-La otra opción, es sacar la posición a partir de la ecuación que te puse antes. Dada una página, basta hacer eso para saber dónde empezar a leer. Luego, acceder con el parámetro GET "?page=N" y listo, no tiene más.