PHP - MYSQL : Pagination.

Fermé
Piksell Messages postés 25 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 5 avril 2011 - Modifié par Piksell le 4/04/2011 à 15:51
Piksell Messages postés 25 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 5 avril 2011 - 5 avril 2011 à 19:48
Bonjour,

pour être plus claire, je fais un site et je bloque pour faire la pagination des commentaires pour des publications, en gros :

Sa ce passe comme un certain réseau social bien connu -> F, un mur, un textarea pour publier une news, en dessous, les news sont affichées, et pour chaque news il y a deux boutons :

'-> afficher les 'x' commentaires
'-> commenter

Le système qu'emploie donc le réseau social F me semble être parfait pour ce que je veux faire.

Publications plus anciennes,
ex : base > 5 commentaires > on clique sur le bouton "afficher plus de commentaires" > 5 nouveaux commentaires apparaissent.

Mais n'y connaissant rien en ajax je bloque totalement, donc si quelqu'un aurait un tutoriel ou des informations pouvant m'aider à faire ce système de 'pagination' je suis preneur.

Merci pour vos réponses.
A voir également:

1 réponse

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
4 avril 2011 à 18:03
Salut,

Pour la réponse AJAX, je te conseille d'utiliser le XML ou JSON, pas du texte brut.
Cela te permettra de stocker les informations de manière structurée.
Tu pourras ainsi récupérer l'ID du dernier élément.

Dans ta requête AJAX, tu pourras récupérer les éléments à partir de cet ID en l'indiquant au script PHP qui l'utilisera dans la requête SQL :
SELECT * FROM table WHERE id > $_GET['lastID'] LIMIT 0,5
0
Piksell Messages postés 25 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 5 avril 2011
Modifié par Piksell le 5/04/2011 à 18:23
Donc enfaite, je fais passer l'information par l'URL pour connaître l'id du dernier commentaire affiché, et à partir de celui ci j'en affiche 5 nouveau, c'est bien sa ? Mais dans ce cas, comment faire lorsqu'il y a énormément de publication ? En tout cas merci pour ta réponse, j'y vois déjà plus claire.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
5 avril 2011 à 16:56
Il faut indiquer l'ID du dernier commentaire chargé dans l'URL dans la requête pour récupérer les commentaires. Dans la réponse de cette requête, il faut indiquer l'ID du dernier élément dans la réponse. La réponse contient uniquement les commentaires à partir de l'ID indiqué dans l'URL
Lorsque tu traites la réponse en Javascript, il faut stocker l'ID du dernier message dans la réponse dans une variable.

Ou bien alors tu peux stocker l'ID en session, et ne pas l'indiquer dans l'URL ni dans la réponse.
0
Piksell Messages postés 25 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 5 avril 2011
5 avril 2011 à 18:47
Oui, d'accord, mais enfaite le soucis c'est que.. Lorsque je clique sa rafraîchit seulement la <div> qui concerne les commentaires de la publication dont on veut en voir d'avantage, donc pour l'instant c'est bon..

Mais étant donné qu'il y a plusieurs publication, si je clique sur afficher plus de commentaires sa enverra donc les informations par l'URL et si je veux effectuer cette action sur plusieurs publications, sa aura pour effet de fermer la première étant donné que les infos seront modifiées pour afficher la dernière action effectuée. Et la je bloque, je vois pas comment faire pour que ce soit applicable sur plusieurs publications sachant que les informations que l'on veut envoyé dans l'URL doivent s'ajouter les unes après les autres, je ne sais pas si tu comprends, j'arrive pas à l'expliquer autrement.

J'ai une idée qui me viens tout juste à l'esprit, si le lien renvoyé prenait en compte le lien de la page actuelle et ajoutait à la suite les informations pour la publication dont on veut afficher d'avantage de commentaire, sa pourrait surement marcher, non ? Mais le lien deviendrait long et sa ne fait pas très propre.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
5 avril 2011 à 18:51
Il faut faire une <div> de commentaires pour chaque publication.
Tu peux y ajouter un ID, que tu passeras à ta fonction Javascript qui actualise.
Dans l'URL de la requête, il faut aussi préciser l'ID de la publication.
Cet ID servira comme ceci : « [...] WHERE post_id = $_GET['id'] AND id > $_GET['lastId'] LIMIT 0, 5 »
0
Piksell Messages postés 25 Date d'inscription mercredi 1 septembre 2010 Statut Membre Dernière intervention 5 avril 2011
Modifié par Piksell le 5/04/2011 à 19:49
Pour la <div> c'est déjà fait, les publications et les commentaires sont affichées en boucle, je crois que c'est bon, tout ce met en place dans ma tête et sur feuille. ^^ Je vais utiliser :

'-> $_SERVER['PHP_SELF'] et ajouter l'ID de la publication ainsi que l'ID du dernier commentaire, cela devrait marcher. Encore merci, et je te dis un peu plus tard si sa marche.
0