Mysql
 sql >> Base de données >  >> RDS >> Mysql

Défilement infini avec des données MySQL

J'ai vu votre code dans une autre réponse et je recommanderais d'utiliser la fonctionnalité LIMIT dans MySql au lieu de compenser les valeurs. Exemple :

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

Cela prendra juste un numéro de page dans la requête AJAX et obtiendra automatiquement le décalage. Il s'agit d'une requête cohérente et fonctionne indépendamment des derniers résultats sur la page. Envoyez quelque chose comme page=1 ou page=2 dans votre code jQuery. Cela peut être fait de différentes manières.

Tout d'abord, comptez le nombre d'éléments construits sur la page et divisez par le nombre sur la page. Cela donnera un numéro de page.

Deuxièmement, vous pouvez utiliser jQuery et lier le numéro de page actuel au corps :

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

Incrémentez-le d'une unité à chaque chargement de page.

C'est vraiment la meilleure solution, car elle utilise une requête pour toutes les opérations et ne nécessite pas beaucoup d'informations sur les données déjà présentes sur la page.

La seule chose à noter est que cette logique exige que la première demande de page soit 0, pas 1. En effet, 1*5 sera évalué à 5, en sautant les 5 premières lignes. Si c'est 0, il sera évalué à 0*5 et ignorera les 0 premières lignes (puisque 0*5 est 0).

Faites-moi part de vos questions !