13/06/2012, 15:44
|
| | Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 13 años, 5 meses Puntos: 72 | |
Respuesta: Problema codigo de paginacion php y mysql Pues el problema esta en el valor que se asigna a la variable "screen", es decir, la variable que se pasa por los enlaces Anterior y Siguiente. El asunto es asi en la primera página la variable $position toma el valor por defecto 0, despues en el enlace Siguiente se asigna el valor a la variable screen de esta manera.
$url = "index.php?screen=" . ($position+1);
echo "<a href=\"$url\">Siguiente</a>\n";
Con lo que screen tendrá el valor 1 el cual sera asignado a $position en la siguiente página y luego será utilizado en la consulta.
$sql = "SELECT * FROM noticias2 order by id ASC LIMIT ".$position.",".$rows_for_page;
Esto equivale a:
$sql = "SELECT * FROM noticias2 order by id ASC LIMIT 1,".$rows_for_page;
Y ahora en el enlace se sumará 1 al valor de $position con lo que la variable screen se enviara a la siguiente página con un valor de 2, por lo tanto en la siguiente consulta trendremos.
$sql = "SELECT * FROM noticias2 order by id ASC LIMIT 2,".$rows_for_page;
Y en la siguiente.
$sql = "SELECT * FROM noticias2 order by id ASC LIMIT 3,".$rows_for_page;
Y asi sucesivamente el valor en la clausula LIMIT irá avanzando de 1 en 1 cuando lo que se desea es que vaya de 2 en 2; para esto hay que sumar y restar 2.
$url = "index.php?screen=" . ($position+2);
echo "<a href=\"$url\">Siguiente</a>\n";
$url = "index.php?screen=" .($position-2);
echo "<a href=\"$url\">Anterior</a>\n"; |