Bonjour,

Je bloque sur une requête SQL, concernant les dates.
On admet une table event suivant la structure suivante :

  • id (int PK AI)
  • date (date)
  • location (char)
  • link (char)

Un modul du panel d'administration du site permet d'ajouter des évènements . Mais sur la partie front-office, j'aimerai afficher 6 dates.
C'est là où je bloque.

Je souhaiterai afficher, au jour J, les 3 dernières dates, et les 3 suivantes.

Pour le moment je n'arrive qu'a selectionner les evenements qui sont ultérieurs à la date d'aujourd'hui.

$sql = "SELECT date,location,link FROM event WHERE date > NOW() ORDER BY date DESC LIMIT 0,6";

Je n'arrive cependant pas à construire ma requête (j'ai toujours beaucoup de mal avec les dates).
Pourriez vous me mettre sur la voie svp ?

2 réponses


bidule
Réponse acceptée

Bonjour,

cela pourra t'aider je pense.

SELECT DATE_ADD(curdate(), INTERVAL -3 DAY) as JourMoins3, curdate() as JourCourant ,DATE_ADD(curdate(), INTERVAL 3 DAY) as JourPlus3;

ou sinon directement:

$sql = "SELECT date, location, link FROM event WHERE BETWEEN date >= DATE_ADD(curdate(), INTERVAL -3 DAY) AND date <= DATE_ADD(curdate(), INTERVAL 3 DAY) ORDER BY date DESC LIMIT 0,6;";

Edit : je viens de comprendre que la fonction sql à utilisée est sans (nul) doute "between".
Mais comment générer dynamiquement les dates date -3j par rapport à aujourd'hui et date +3j par rapport à aujourd'hui svp ?