Mysql
 sql >> Database >  >> RDS >> Mysql

Scorrimento infinito con dati MySQL

Ho visto il tuo codice in un'altra risposta e consiglierei di utilizzare la funzionalità LIMIT in MySql invece di compensare i valori. Esempio:

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

Questo richiederà solo un numero di pagina nella richiesta AJAX e otterrà automaticamente l'offset. È una query coerente e funziona indipendentemente dagli ultimi risultati nella pagina. Invia qualcosa come page=1 o page=2 nel tuo codice jQuery. Questo può essere fatto in un paio di modi diversi.

Innanzitutto, conta il numero di elementi costruiti sulla pagina e dividi per il numero sulla pagina. Questo produrrà un numero di pagina.

In secondo luogo, puoi usare jQuery e associare il numero di pagina corrente al corpo:

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

Incrementalo di uno a ogni caricamento della pagina.

In questo modo è davvero il modo migliore, perché utilizza una query per tutte le operazioni e non richiede molte informazioni sui dati già presenti nella pagina.

L'unica cosa da notare è che questa logica richiede che la richiesta della prima pagina sia 0, non 1. Questo perché 1*5 restituirà 5, saltando le prime 5 righe. Se è 0, valuterà 0*5 e salterà le prime 0 righe (poiché 0*5 è 0).

Fammi sapere tutte le domande che hai!