Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Unendliches Scrollen mit MySQL-Daten

Ich habe Ihren Code in einer anderen Antwort gesehen und würde empfehlen, die LIMIT-Funktion in MySql zu verwenden, anstatt die Werte zu versetzen. Beispiel:

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

Dies nimmt nur eine Seitennummer in die AJAX-Anfrage und erhält den Offset automatisch. Es handelt sich um eine konsistente Abfrage, die unabhängig von den letzten Ergebnissen auf der Seite funktioniert. Senden Sie so etwas wie page=1 oder page=2 in Ihrem jQuery-Code. Dies kann auf verschiedene Arten erfolgen.

Zählen Sie zuerst die Anzahl der auf der Seite konstruierten Elemente und dividieren Sie sie durch die Zahl auf der Seite. Dies ergibt eine Seitenzahl.

Zweitens können Sie jQuery verwenden und die aktuelle Seitenzahl an den Hauptteil binden:

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

Erhöhen Sie ihn bei jedem Laden der Seite um eins.

Das ist wirklich der bessere Weg, weil es eine Abfrage für alle Operationen verwendet und nicht viele Informationen über die Daten benötigt, die sich bereits auf der Seite befinden.

Beachten Sie nur, dass diese Logik erfordert, dass die erste Seitenanforderung 0 und nicht 1 ist. Dies liegt daran, dass 1 * 5 zu 5 ausgewertet wird und die ersten 5 Zeilen übersprungen werden. Wenn es 0 ist, wird es zu 0*5 ausgewertet und die ersten 0 Zeilen übersprungen (da 0*5 0 ist).

Lassen Sie mich Ihre Fragen wissen!