{MySQL} Un SELECT qui marche pas

Résolu/Fermé
fast518 Messages postés 18 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 10 juillet 2009 - 23 juin 2009 à 18:37
fast518 Messages postés 18 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 10 juillet 2009 - 24 juin 2009 à 10:41
Bonjour,
Voilà je veux récupérer tous les attributs qui ont une date de fin ultérieure à celle d'aujourd'hui :
<?
$today = date('Y\-m\-d');
list($jour, $mois, $annee) = explode('-', $today);

$sql = "SELECT * FROM ma_table
WHERE DAY(Datefin) >= '$jour'
OR MONTH(Datefin) > '$mois'
OR YEAR(Datefin) > '$annee'";
?>

De cette façon les résultats ne sont pas convaincants :D

J'ai eu une autre idée que je n ai pas pu mettre en œuvre qui est la suivante :
<?
$today = date('Ymd');
et récupérer la date depuis la base de données et la mettre dans le même format à savoir aaaammjj et la comparer à $today comme étant des int.

Merci d'avance pour votre aide !

1 réponse

moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
23 juin 2009 à 20:51
Hello
La philosophie de ta requete est bonne. Par contre pour tu n'utilises pas date("d/m/Y") ?
Il suffirait de passer cette variable $today = date("d/m/Y") à ta requete SQL de la forme where date = '$today'...
Je ne vois pas l'utilité de "list" et de "explode".
Sinon si en base tu veux découper parce que les composants de date sont séparés (JJ, MM, AAAA) je ferai un substr pour $Jour = substr($today ,0,2); par ex...
0
fast518 Messages postés 18 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 10 juillet 2009
24 juin 2009 à 10:41
Oui tu as raison, ca marche mieux avec le sub string !! Merci beaucoup moderno.
0