Page 1 sur 1

Probléme de Date MYSQL/PHP

Posté : 03 janv. 2008, 02:32
par PseT
Salut,

J'ai une base de donnée dont le champs DATE est un Timestamp (mysql : 2008-01-03 00:28:14).

Je souhaite affiché les infos stocké en fonction de la date du jour "$aujourdhui = date("Y-m-d");" soit "$aujourdhui = 2008-01-03".

Comment construire ma requête mysql afin d'avoir les bons résultats? car la requête : "select * from article WHERE date='$aujourdhui'" ne fonctionne pas.

Je tourne en rond sans trouver de solution...

Merci

Posté : 03 janv. 2008, 02:42
par Elie
1° Si ton champs est comme ceci : (mysql : 2008-01-03 00:28:14)
Ce n'est pas un TiMESTAMP mais bien un champ DATE

Donc si c'est le cas, il te suffit juste de faire :
"SELECT * FROM article WHERE date LiKE '".$aujourdhui."%'";
Le % dis que tout ce qui est derrière ne l'interesse pas !

2° Si tu t'es trompé et que ton champ et bel et bien un TiMESTAMP il faut proceder ainsi :
<?php

$matin = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$soir = mktime(23, 59, 59, date('m'), date('d'), date('Y'));

"SELECT * FROM article WHERE date < ".$matin." AND date > ".$soir;

?>
Enjoy !

Posté : 03 janv. 2008, 07:10
par Xenon_54
1° Si ton champs est comme ceci : (mysql : 2008-01-03 00:28:14)
Ce n'est pas un TiMESTAMP mais bien un champ DATE
DATETIME en fait.

Tu peux utiliser les fonctions MySQL pour récupérer les articles d'une date données:

Code : Tout sélectionner

SELECT * FROM article WHERE DATE(`date`) = '$aujourdhui';
Où $aujourd'hui est au format YYYY-MM-DD.

Si ton champ date est au format TIMESTAMP, tu peux utiliser sensiblement la même requête:

Code : Tout sélectionner

SELECT * FROM article WHERE DATE( FROM_UNIXTIME(`date`) ) = '$aujourdhui';
Il est préférable d'utiliser le format de date natif à MySQL si tu désires faires des requêtes SQL qui nécessite un tri sur la date. Tu ne seras pas obliger de convertir le format à chaque requête comme le montre le dernier exemple.

Posté : 03 janv. 2008, 12:05
par PseT
C'est parfait merci beaucoup, pour votre aide.