Dates news de la semaine et du mois précédent [Résolu]

Signaler
Messages postés
62
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
28 juin 2011
-
Messages postés
62
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
28 juin 2011
-
Salut!
je souhaite afficher les news de la semaine sur mon site internet en PHP / MySQL(sous PHPMyAdmin).
Voici ma requete pour la semaine:
SELECT * FROM news WHERE sysdate() < date < sysdate(date+7)
et pour le mois précédent:
SELECT * FROM news WHERE sysdate(date - 30) < date < sysdate()

Cela ne fonctionne pas, quelqu'un pourrait m'aider?

6 réponses

Messages postés
68
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
7 juillet 2008
3
ERREUR DANS MES CODES DANS MON PRECEDENT MESSAGE







Voici les bonnes requêtes :
SELECT* FROM news WHERE date > SUBDATE(SYSDATE(), INTERVAL 7 DAY)
SELECT* FROM news WHERE date > SUBDATE(SYSDATE(), INTERVAL 1 MONTH)

Effectivement en demandant à la date de la news d'être au moins supérieure à la date courante, MySQL n'aurait rien renvoyé.
Messages postés
12
Date d'inscription
mercredi 23 mars 2005
Statut
Membre
Dernière intervention
27 mai 2008

Bonjur badziz,

Je pense que le mieux est de découper ta requète comme suit :
... WHERE Sysdate() < Date AND Date < ADDDATE(monchamp, INTERVAL 7 DAY)

idem avec le mois.

J'espère que cela t'aidera.
Messages postés
62
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
28 juin 2011
1
Ma table news contient les champs id_news, news et date.

La requête donnerait ceci:
SELECT * FROM news WHERE Sysdate() < date AND date < ADDDATE(date, INTERVAL 7 DAY)

c'est ça? j'ai testé cela ne fonctionne pas malheureusement. J'ai pourtant des événements dans ma table mais je n'en ai aucun qui s'affiche...
Messages postés
62
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
28 juin 2011
1
up!
quelqu'un pourrait m'aider svp?
Messages postés
68
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
7 juillet 2008
3
En premier lieu, il ne faut pas se contenter de donner un code qui ne marche pas. Il faut nous donner la structure de ta table et la commenter pour nous expliquer ce qu'il y a dedans. Si tu ne le fais pas, on risque de mal comprendre ou de ne pas chercher à comprendre et du coup te donner des mauvaises réponses dans le cas où on aurait envie de t'aider.

Je vais supposer que ta table a une structure ressemblant à :
CREATE TABLE "news" (
    "date" DATETIME NOT NULL default'0000-00-00 00:00:00',
    ...
);



Sysdate() < dateest à priori incorrect

Si je comprend bien, le champs date est la date à laquelle on a posté la news. Or cette date sera toujours inférieure à la date courante. Dans ce cas de figure, ta condition est donc systématiquement fausse et MySQL ne sélectionnera jamais aucun enregistrement.

date < ADDDATE(date, INTERVAL 7 DAY) est incorrect.

Effectivement une date sera toujours différente d'elle même plus 7 jours. Ta condition est donc systématiquement fausse et MySQL ne sélectionnera jamais aucun enregistrement.


Voici la requête pour les news de la semaine :
SELECT* FROM news WHERE date > ADDDATE(SYSDATE(), INTERVAL 7 DAY)


Voici la requête pour les news du mois :
SELECT* FROM news WHERE date > ADDDATE(SYSDATE(), INTERVAL 1 MONTH)

PS : désolé de jouer mon difficile, mais serait-ce trop demander aux développeurs de ce site de fournir des cadres pour insérer les codes dans nos messages, avec si possible une coloration syntaxique automatique ?
Messages postés
62
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
28 juin 2011
1
Ca fonctionne, c'est parfait!
Merci pour ton aide.