badziz
Messages postés62Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention28 juin 2011
-
26 mai 2008 à 10:29
badziz
Messages postés62Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention28 juin 2011
-
29 juin 2008 à 14:12
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?
Farfadh
Messages postés68Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 7 juillet 20084 29 juin 2008 à 04:24
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é.
Farfadh
Messages postés68Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 7 juillet 20084 29 juin 2008 à 04:20
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 ?