Page 1 sur 1

Afficher un résultat d'une requete en fonction d'une date

Posté : 18 avr. 2009, 23:20
par al
Bonjour,

Voilà mon problème, j'ai créé un petit script de sondage. Dans mon script, il est possible d'afficher le jour de début et de fin d'un sondage. Ce qui veut dire à la date de début on affiche le sondage correspondant et à la date de fin on n'affiche plus.

Ex de données :
S1 : Date de début le 2009-04-19 01:11:16 - Date de fin le 2009-04-24 11:11:11
S2 : Date de début le 2009-04-17 09:48:07 - Date de fin le 2009-04-19 10:50:10

Je souhaite afficher le sondage qui est valide aujourd'hui (ex : 2009-04-18 19:24:57), ce qui devrait afficher comme résultat le sondage 2.

Voici ma requête sql pour ce que je vaux faire :
SELECT DISTINCT `s`.`poll_id`, `s`.`poll_datebegin`, `s`.`poll_dateend` FROM `serie_vote_polls` AS `s` WHERE (s.poll_dateend <= '.date('Y-m-d H:i:s').') AND (s.poll_datebegin >= '.date('Y-m-d H:i:s').')

N.B pour cette exemple remplacé date('Y-m-d H:i:s') par 2009-04-18 19:24:57.

Mais cette requête ci-dessus ne donne aucun résultat.

Quelqu'un peut-il me dire d'où vient le problème, s'il vous plait. En espérant que j'ai été clair. Pour plus de renseignement n'hésitez pas.

Posté : 18 avr. 2009, 23:53
par Ryle
(s.poll_dateend <= '.date('Y-m-d H:i:s').') 
AND 
(s.poll_datebegin >= '.date('Y-m-d H:i:s').') 
Hmm... tu récupères tous les sondages dont la date de fin est inférieure ou égale à la date (et heure) du jour, et dont la date de début est supérieure à celle-ci... En gros, tu essayes d'afficher les sondages qui n'ont pas encore commencé et qui sont déjà terminés ;)

Posté : 19 avr. 2009, 09:00
par al
Euh ! Non! J'essaye d'afficher les sondages qui ont déjà débuté et qui ne sont pas encore fini. Et merci je crois avoir compris ma bêtise.

Posté : 19 avr. 2009, 11:13
par Ryle
Ben c'est bien ça le soucis... tes égalités ne sont pas dans le bon sens :)

Il te faut une date de fin qui n'est pas encore arrivée par rapport à la date du jour (donc date de fin supérieure à la date du jour) et une date de début déjà passée (donc date de début inférieur à la date du jour). C'est le contraire que tu avais fait ;)