Salut,
Soit les 3 tables suivantes :
Table articles :
ID STATUS DATE TITRE CORPS 1 pub 201706071433 titre du billet 1 corps du billet 1 2 dep 201706091112 titre du billet 2 corps du billet 2
Table associations :
IDART IDTAG 1 2 1 3 1 4 1 5 1 6 2 4 2 3
Table tags :
ID TAG 1 Non classé 2 cuisine 3 loisir 4 maison 5 mode 6 musique
Le résultat d'une requête qui est la jointure des 3 tables me retourne un paquet de lignes dont certaines ont plusisurs fois le même ID (normal lorsqu'un article à plusieurs tags).
Mon problème est que je voudrais afficher 5 articles par page.
Or mon article 1 comporte 5 tags et si je fais la requête suivante je me retrouve avec 1 articles et ses 5 tags, soit 5 lignes de l'article 1 :
Du coup j'ai trouvé ceci (qui est bien mieux)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select * from articles inner join associations on associations.idart = articles.id inner join tags on associations.idtag = tags.id order by articles.id limit 0,5:
Comment savoir ou on en est lorsque l'utilisateur voudra paginer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select * from articles inner join associations on associations.idart = articles.id inner join tags on associations.idtag = tags.id where idart >= 1 and idart <= 5 order by articles.id
Imaginon qu'on en soit à la 2ème page donc aux articles 6 à 10 : comment dans mon liens pour les résultats suivant (soit une autre page, soit un AJAX) je sais que je dois retrouver les articles 11 à 15 ?
Je pense à un cookie ou à un passage de params en GET ou POST...
Qu'est-ce que vous utilisez ?
Merci.
Partager