Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2011, 12h55   #1
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Par défaut Problème requête avec intervalle de date

Bonjour à tous,

Je cherche à insérer dans une requête mysql une condition de date mais je ne sais pas comment la mettre en place.

Je gère un agenda avec une date de début d'évènement au format 0000-00-00 et une date de fin d'évènement au même format.
Sauf que certains évènements sont à une date unique et d'autre sur plusieurs jours.

Je n'arrive pas à m'en sortir avec ma requête. Voici mon code :

Code :
WHERE (SOIREE_SECTEUR = '$idSecteur' AND (WHEN SOIREE_DATE_FIN = '0000-00-00' THEN SOIREE_DATE LIKE '$nbrTodayYear-$nbrTodayMonth-$nbrAgendaDay' ELSE SOIREE_DATE <= '$nbrTodayYear-$nbrTodayMonth-$nbrAgendaDay' AND SOIREE_DATE_FIN >= '$nbrTodayYear-$nbrTodayMonth-$nbrAgendaDay') )
Puis-je avoir un peu d'aide ?

Merci par avance,

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h00   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Salut !
Quel est le problème ?
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h17   #3
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Salut Seb,

Merci de ta réponse.

En fait je ne sais pas comment créer cette requête mysql.
A l'heure actuelle je ne gère que des dates simples sans intervalle :

Code :
 WHERE (SOIREE_SECTEUR = '$idSecteur' AND SOIREE_DATE LIKE '$nbrTodayYear-$nbrTodayMonth-$nbrAgendaDay' )
Mais mon site dispose d'un agenda au jour le jour donc si par exemple, je rentre un évènement avec une date de début le 2011-06-01 et une date de fin le 2011-06-15, il ne m'affichera l'évènement que le 1er juin et par les autres dates jusqu'au 15 juin.

Etant un codeur en herbe je ne sais pas comment coder ma requête mysql qui me permettrait d'afficher mon évènement aux autres dates.

Je ne sais pas si je suis très clair dans mes explications

Penses-tu pouvoir me filer un coup de main ?

Merci à toi.

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h29   #4
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Si j'ai bien compris tu veux sélectionner les évènement dont
$date correspond à DATE_SOIREE
Ou
$date est compris entre DATE_SOIREE et DATE_SOIREE_FIN

J'ai bon ?

Si oui alors tu peux faire :

...
WHERE '$date' = DATE_SOIREE OR '$date' BETWEEN DATE_SOIREE AND DATE_SOIREE_FIN
...
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h41   #5
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Merci pour ta réponse.

C'est presque ça car il faut que je pose comme condition que

quand SOIREE_DATE_FIN = 0000-00-00
il prenne en compte
$date = SOIREE_DATE

et que quand SOIREE_DATE_FIN correspond à une date autre que 0000-00-00
il prenne en compte
$date BETWEEN SOIREE_DATE AND SOIREE_DATE_FIN

C'est à ce stade là que je bloque.

As-tu une idée ?

Merci par avance,

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h42   #6
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Hum je ne vois pas de problème car si DATE_SOIREE_FIN vaut 0000-00-00 le BETWEEN sera toujours FALSE.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h47   #7
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF


Voici le code
Code :
WHERE (SOIREE_SECTEUR = '$idSecteur' AND ('$nbrTodayYear-$nbrTodayMonth-$nbrAgendaDay' = SOIREE_DATE OR '$nbrTodayYear-$nbrTodayMonth-$nbrAgendaDay' BETWEEN SOIREE_DATE AND SOIREE_DATE_FIN) )
Et voici un exemple de page pour que tu vois le problème en direct :
http://www.nightfever.fr/sorties_Cle...-mai-2011.html

Il m'affiche des dates partants du 26 mai alors que la date sélectionnée est celle du 28 mai.
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h49   #8
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Attends je fais une vérification, je crois que j'ai dit une bétise ...
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 13h52   #9
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 449
Points : 3 449
Citation:
Il m'affiche des dates partants du 26 mai alors que la date sélectionnée est celle du 28 mai.
Oui, parce que l'évènement Europavox couvre les dates du 26 au 29.
Cela répond bien au postulat de départ.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 14h04   #10
Membre du Club
 
Homme Aurelien NF
Inscription : août 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Aurelien NF
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : août 2010
Messages : 216
Points : 59
Points : 59
Envoyer un message via Skype™ à AurelienNF
Merci Seb.

Il m'a fallu un peu de temps pour comprendre mon erreur mais tout fonctionne et c'est bien là le principal

Encore merci.

A bientôt,

Aurélien
AurelienNF est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h30.


 
 
 
 
Partenaires

Hébergement Web