Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/06/2012, 15:44
lubtufano
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 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";