sql >> Base de Datos >  >> RDS >> Mysql

Desplazamiento infinito con datos MySQL

Vi su código en otra respuesta, y recomendaría usar la funcionalidad LIMIT en MySql en lugar de compensar los valores. Ejemplo:

SELECT * FROM all_posts ORDER BY post_id DESC LIMIT '".(((int)$page)*5)."',5

Esto solo tomará un número de página en la solicitud AJAX y obtendrá la compensación automáticamente. Es una consulta coherente y funciona independientemente de los últimos resultados de la página. Envía algo como página=1 o página=2 en tu código jQuery. Esto se puede hacer de dos maneras diferentes.

Primero, cuente el número de elementos construidos en la página y divídalo por el número en la página. Esto producirá un número de página.

En segundo lugar, puede usar jQuery y vincular el número de página actual al cuerpo:

$(body).data('page', 1)

Increméntalo en uno cada vez que cargues una página.

Hacer esto es realmente la mejor manera de hacerlo, porque usa una consulta para todas las operaciones y no requiere mucha información sobre los datos que ya están en la página.

Lo único a tener en cuenta es que esta lógica requiere que la solicitud de la primera página sea 0, no 1. Esto se debe a que 1*5 se evaluará como 5, omitiendo las primeras 5 filas. Si es 0, se evaluará como 0*5 y omitirá las primeras 0 filas (ya que 0*5 es 0).

¡Avísame cualquier duda que tengas!