Foros del Web » Programando para Internet » PHP »

Paginar desde las ultimas metidas a las rimeras

Estas en el tema de Paginar desde las ultimas metidas a las rimeras en el foro de PHP en Foros del Web. Hola me gustaria , paginar pero d la siguiente forma. yo he hecho la pagina y le he dicho q me muestre solo los ultimos ...
  #1 (permalink)  
Antiguo 18/06/2002, 19:02
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Paginar desde las ultimas metidas a las rimeras

Hola me gustaria , paginar pero d la siguiente forma.
yo he hecho la pagina y le he dicho q me muestre solo los ultimos 5 resultadosde la siguiente forma
$total = $row['0'];
$parcial = $total - 5;
//Verifico si el parcial es negativo es decir si en la db hay menos d 5 noticis y si lo es , q nos muetre todas
if ($parcial < 0)
{
$sql = "SELECT id_guestbook,nombre,email,url,pais,mensaje FROM guestbook";
}
else
{
$sql = "SELECT id_guestbook,nombre,email,url,pais,mensaje FROM guestbook LIMIT ".$parcial.", ".$total;
}

vale, hasta ahi todo bien , pero me gustria poner un link para que me llevase a las 5 anteriores, entonces no es una paginacion normal , sino que tengo que paginar pero restandole 5 cada vez
Alguien sabe como lo puedo hacer?
Gracias
  #2 (permalink)  
Antiguo 19/06/2002, 02:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Re: Paginar desde las ultimas metidas a las rimeras

Hola,

Primero comentarte que los parametros del LIMIT son primer registro y numero de registros a mostrar, asi que en tu caso seria:

Código:
$sql="select .... LIMIT ".$parcial.",5";
Te funciona porque si le especificas un numero de registros a mostrar mayor que los registros que quedan hasta el final, te muestra hasta el final.

Para hacer el link que te muestre los 5 anteriores, tendrias que pasarle como parametro a esa pagina una variable que le indique que registros mostrar.Por ejemplo:
Código:
$total = $row['0'];
//Comprobamos si nos han pasado $parcial como parametro a la pagina
//OJO: solo funciona si no has definido $parcial antes de este punto en tu script.
//Si ya la has definido, usa otro nombre para la variable que le pasas a la pagina
if (isset($parcial))
{
  $parcial=$parcial-5;
} else
{
  $parcial = $total - 5;
}
//Verifico si el parcial es negativo es decir si en la db hay menos d 5 noticis y si lo es , q nos muetre todas 
if ($parcial < 0)
{
$sql = "SELECT id_guestbook,nombre,email,url,pais,mensaje FROM guestbook";
}
else
{
$sql = "SELECT id_guestbook,nombre,email,url,pais,mensaje FROM guestbook LIMIT ".$parcial.", 5";
}
//link para mostrar los 5 anteriores
echo "<a href='".$PHP_SELF."?parcial=".$parcial."'>5 anteriores</a>";
Tendrias que tener en cuenta el caso en que el total no sea multiplo de 5, que $parcial tendra un valor negativo.

Lo de los parametros del LIMIT es para MySQL, si usas otraBD puede que tenga distintos parametros.

Espero que te sea de ayuda.

Josemi
  #3 (permalink)  
Antiguo 19/06/2002, 09:48
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: Paginar desde las ultimas metidas a las rimeras

Hola, lo primero gracias, he estado probanmdo con este codigo y me pasa lo siguiente, no m las muestra d las ultimas a las primeras, me meustar primero los primeros comentarios de la db y una vez dle doy a 5 siguientes me muestra todo el resto no 5 :(
a ver si me podeis ayudar , muchas gracias
  #4 (permalink)  
Antiguo 19/06/2002, 15:12
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Re: Paginar desde las ultimas metidas a las rimeras

Bueno, a ver si esta ez no fallo.

¿Me puedes aclarar un poco? Dices que la primera vez que carga te muestra los datos esperados,¿verdad?. ¿Te has fijado el valor de parcial? Puedes verlo en el link "5 anteriores". Creo que se lo que pasa. Tienes, por ejemplo, 8 registros ($total=8). La primera vez que cargas la pagina te muestra los 5 ultimos ($parcial=$total-5=8-5=3). Pinchas en el link "5 anteriores" (mipagina.php?parcial=3). Se vuelve a cargar la pagina($total=8). Como $parcial esta definida $parcial=$parcial-5=3-5=-2 .
Y como $parcial es menor de 0 se ejecuta el primer select, el que muestra todos los registros.

Mi fallo fue que no toque esa linea :(

Bien, si este es el fallo, se puede solucionar asi
Código:
if ($parcial<0)
{
  $sql = "SELECT id_guestbook,nombre,email,url,pais,mensaje FROM guestbook LIMIT 0,5";
} else ...
de esta forma te mostrara los 5 primeros. Si solo quieres que te muestre los que te faltan por mostrar, en mi ejemplo 3, cambias el 5 por (5-$parcial).

Y en el caso de que $parcial sea negativo no debes mostrar el link "5 anteriores" porque ya estas en la primera pagina.

Espero que esta vez no se me olvide nada y que te funcione. Ya lo siento si con la primera contestacion te lie todavia mas.


Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/06/2002, 06:22
Avatar de lochorui  
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 899
Antigüedad: 22 años, 2 meses
Puntos: 2
Re: Paginar desde las ultimas metidas a las rimeras

Perfecto Josemi , esto funciona a la maravillla muxas thanks
Aki m tenes xa la o q quieras ;)
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 07:47.