Requête mysql pour article précédent et suivant en php

Résolu/Fermé
ddami1 Messages postés 8 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 14 décembre 2012 - 13 déc. 2012 à 22:59
ddami1 Messages postés 8 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 14 décembre 2012 - 14 déc. 2012 à 01:16
Bonjour,

J'ai une table comprenant des news sous cette forme :

id       titre         texte            validation     date
----------------------------------------------------------------------
1        bla1         blabla1         oui               2010-02-01
8        bla2         blabla2         non              2011-03-07 
15      bla3         blabla3         oui               2009-01-15
19      bla4         blabla4         oui               2013-05-06
31      bla5         blabla5         non              2011-04-08
42      bla6         blabla6         oui               2012-06-03
53      bla7         blabla7         oui               2012-06-03
59      bla8         blabla8         oui               2008-05-16


Je liste les news par date et id DESC si elles sont validées et si la date est déjà passée avec cette requête :
SELECT * FROM table WHERE date <= '".date('Y-m-d')."' AND texte_validation='oui' ORDER BY date DESC, id DESC


Ce qui me donne les résultats suivants dans l'ordre :

id       titre         texte            validation     date
----------------------------------------------------------------------
53      bla7         blabla7         oui               2012-06-03
42      bla6         blabla6         oui               2012-06-03
1        bla1         blabla1         oui               2010-02-01
15      bla3         blabla3         oui               2009-01-15
59      bla8         blabla8         oui               2008-05-16


J'affiche mes news une par page sur mon site.
Et lorsque je suis sur une news, je souhaiterai mettre un lien précédent et un lien suivant (s'il existe) pour passer d'une news à l'autre.

C'est ici que je bloque, je ne sais pas quelle requête faire pour que si je suis sur la news 1
=> le lien précédent sache qu'il doit aller sur la news 42
=> et le lien suivant, sur la news 15.

Pourriez-vous m'aider svp?
A voir également:

2 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
14 déc. 2012 à 00:08
Pour le lien suivant, tu fais ta requête :
SELECT * FROM table WHERE (date > '".$date_new."' OR (date = '".$date_new."'AND id>'".$id_new."')) AND texte_validation='oui' ORDER BY date DESC, id DESC Limit 0,1


Pour le précédent, tu fait l'inverse
SELECT * FROM table WHERE (date < '".$date_new."' OR (date = '".$date_new."'AND id<'".$id_new."')) AND texte_validation='oui' ORDER BY date ASC, id ASC Limit 0,1
1
ddami1 Messages postés 8 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 14 décembre 2012
14 déc. 2012 à 01:16
Super, merci beaucoup pour ton aide Nhay.

Juste une inversion dans les ASC et DESC mais c'est bien ce qu'il me fallait, encore merci ! :)
0