Problème avec la comparaison de dates !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec la comparaison de dates !

par orgerix » 04 juil. 2007, 17:18

Sauf si le serveur Web (php) se trouve à Taïwan, le serveur Mysql à Malibu et l'entreprise concernée à Kinshasa! là il faut cogiter :lol:
Y a pas moyen de régler le fuseau horaire ?

par angebleu17 » 04 juil. 2007, 15:18

Merci pour ces précisions :wink:

par sadeq » 04 juil. 2007, 15:05

Heu, juste une correction, au lieu d'utiliser la date système de PHP utilisez plutôt celle du serveur Mysql, c'est plus judicieux et ça vous économise du code PHP.

Correction:

Code : Tout sélectionner

WHERE Now() BETWEEN date_debut AND date_fin
Sauf si le serveur Web (php) se trouve à Taïwan, le serveur Mysql à Malibu et l'entreprise concernée à Kinshasa! là il faut cogiter :lol:

par AVI3000 » 04 juil. 2007, 14:52

PHP, je débute,
mySQl connais pas

mais en SQL
tu peux faire un tas de choses dans les clauses WHERE
where 1 = 1 ramène tous les enregistrements
where 1 <> 1 n'en ramène aucun
where champ1 = fonction(champ2)

les jointures (clauses ON) sont un peu plus sensibles (selon le SGBD)

par angebleu17 » 04 juil. 2007, 14:39

oui ça fonctionne...

Je croyais que dans une requête on ne pouvait mettre que les champs de la table..mais apparement non .. tant mieux :)

par Ryle » 04 juil. 2007, 12:49

C'est une très bonne question... faudrait essayer pour voir si le résultat retourné est celui attendu :)

(en oubliant pas d'ajouter les apostrophes autour de ta date pour la délimiter ;))

par angebleu17 » 04 juil. 2007, 12:16

Est ce que je peux mettre :

Code : Tout sélectionner

WHERE $date_auj BETWEEN date_debut AND date_fin
car $date_auj n'est pas un champ de ma table ?

par Ryle » 04 juil. 2007, 12:10

Juste un peu de logique :

Code : Tout sélectionner

WHERE date_debut > '$date_auj' AND date_fin < '$date_auj'
Tu listes les enregistrement qui commencent après aujourd'hui (date_debut > '$date_auj') ET qui se terminent avant aujourd'hui (date_fin < '$date_auj') ... à mon avis tu ne dois pas en avoir beaucoup ;)

Tu peux également regarder du côté de la commande BETWEEN en sql :

Code : Tout sélectionner

WHERE maDate BETWEEN date1 AND date2

Problème avec la comparaison de dates !

par angebleu17 » 04 juil. 2007, 12:05

Bonjour,

J'ai une table avec date_debut et date_fin.

Et j'aimerais lors d'une requête récupérer les enregistrements qui sont actif (c'est a dire les enregistrements où la date d'aujourd'hui est entre la date de début et la date de fin).

Donc je récupére la date d'aujourd'hui : $date_auj = date("Y-m-d");

Ensuite j'ai fait cette requête :
$req2 = mysql_query("SELECT * FROM matable WHERE date_debut > '$date_auj'  AND date_fin < '$date_auj' ");
Mais ça ne marche pas.. ça me renvoit 0 alors qu'il y a bien des enregistrements.

Je pense que je m'y "prend mal", je ne sais pas si ma requête est bonne ou non...

J'espére que vous pourrez m'aider. Merci d'avance pour vos réponses.