Un "select" un peu dur

Résolu
fatatra Messages postés 50 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007 - 9 nov. 2007 à 18:50
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 - 12 nov. 2007 à 11:50
Bonjour a tous;

J'ais une base de données qui contient des evenements a un champ date yyyy-mm-aa et un champ heure hh:mm:ss.
A un moment donnée je voudrais select tous les evenements qui ne sont pas encore passée.

je fais donc un truc comme ca:  (je precise qu'on est entre des balises php):

$date= mysql_query("SELECT CURDATE()");
$date= mysql_fetch_row($date);
$time= mysql_query("SELECT CURTIME()");

$time= mysql_fetch_row($ time );
j'en passe...et la requéte:
SELECT id,date FROM entrainements WHERE date> ='".$date[0]."'AND heure>='".$time[0]."' ORDER BY date ASC"

Et ca ne marche pas puisque si j'effectue la requete a 18h les entrainements du lendemain a 12h ne sont pas selectionnés ainsi que tous les suivants qui ont une heure inférieur a celle de la requete!!

En faite je voudrais qu'on m'explique comment faire une requete qui  littéralement dirais:

select tous les (id,entrainements) dont la date est superieur a aujourd'hui ET aussi ceux d'aujourd'hui dont l'heure n'est pas passée!!! 

Voila,  et c'est pas aussi facile que ca en a l'air.

Merci a vous

hello!!

1 réponse

pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
12 nov. 2007 à 11:50
salut
il faut que tu scinde ta clause where en 2 parties...
une premiere partie va dire
(date='".$date[0]."'AND heure>='".$time[0]."')
puis un  "OR"
puis une seconde partie
(date >'".$date[0]."')
ce qui signifie littéralement :
prendre tous les évènements
dont la date est aujourd'hui avec une heure supérieure à l'heure actuelle
ou dont la date est supérieure à aujourd'hui.

Cordialement

Pat
3
Rejoignez-nous