Como monstrar de 5 en 5 registros de un sql

Iniciado por SrTrp, 22 Octubre 2017, 17:25 PM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

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 (php) [Seleccionar]

if($pagina == 1){
 $limitante += 5;
}else{
 $limitante = 0;
}
 
$sql = "SELECT usuario, puntos FROM ranking order by puntos desc LIMIT ".$limitante.",5";
$result = $conn->query($sql);

$number = 1;

 if ($result->num_rows > 0) {
   echo "<table  class=tabla>";
   while($rower = $result->fetch_assoc()) {
......


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 (javascript) [Seleccionar]

var pagina;
pagina=<?php echo $pagina?>;
function page(cd){
 if(cd == 1){
   pagina+=1;
   location.href ="/index.php?page="+pagina;    
 }else{
   if(pagina <= 1){
       location.href ="/index.php?page=1";  
   }else{
     pagina-=1;
       location.href ="/index.php?page="+pagina;  
   }
 
 }
 
}


ivancea96

Qué dices de:
Código (php) [Seleccionar]
$limitante = ($pagina - 1) * 5;

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Cita de: ivancea96 en 22 Octubre 2017, 17:34 PM
Qué dices de:
Código (php) [Seleccionar]
$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.

Cita de: 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
Gracias eso haré!

ivancea96

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.