Page 1 sur 1
PB BETWEEN
Posté : 01 juil. 2010, 17:26
par hashut
Bonjour
j'ai toujour un blem avec se code
dans la base date debut 2010-08-01 date de fin 2010-08-31
si je fait
Code : Tout sélectionner
SELECT DISTINCT * FROM tarifs WHERE (Date_deb BETWEEN '2010-08-01 16:00:00' AND '2010-08-31 10:00:00') or (Date_fin BETWEEN '2010-08-01 16:00:00' AND '2010-08-31 10:00:00')
cela fonctionne nickel
mais par contre si je fait
Code : Tout sélectionner
SELECT DISTINCT * FROM tarifs WHERE (Date_deb BETWEEN '2010-08-10 16:00:00' AND '2010-08-17 10:00:00') or (Date_fin BETWEEN '2010-08-10 16:00:00' AND '2010-08-17 10:00:00')
cela marche plus
quelqun serais pk
merci
Re: PB BETWEEN
Posté : 01 juil. 2010, 17:55
par ouckileou
Ben oui aucune de tes dates ne rempli les conditions de la deuxième requête, alors qu'elles remplissent celles de la première.
Re: PB BETWEEN
Posté : 01 juil. 2010, 17:59
par hashut
comment faire pour affiche la periode qui se trouve entre les date de la requete
Re: PB BETWEEN
Posté : 02 juil. 2010, 09:44
par ouckileou
En mettant des dates qui sont situées entre les dates début et fin de ta requête...
Re: PB BETWEEN
Posté : 02 juil. 2010, 10:13
par hashut
oui
par exemple resa du mois aout du 01/08 au 31/08
le client fait une requete du 14/08 au 21/08
comment faire pour que sa requete aboutisse
merci
Re: PB BETWEEN
Posté : 02 juil. 2010, 10:22
par ouckileou
Il va falloir en dire plus là, on comprend rien. A quoi correspond la recherche par rapport à la résa ?
Parceque pour l'instant c'est plutôt clair, si u cherches une date précise, il faut qu'elle soit comprise entre date début et date de fin. Si tu veux faire un truc plus élaboré, genre gérer des plages, il va falloir détailler un peu.
Re: PB BETWEEN
Posté : 02 juil. 2010, 10:39
par hashut
le resa on des tarifs different suivant les date
par exemple
pour noel un tarif
pour nouvel an un tarif
pour vacance février un tarif
en février hors vacance un tarif
du 01/08 au 31/08 un tarif
ect .......
je voudrais que la requete client pour une periode m'afficje le bon tarif
sa doit etre plus clair la ( c'est vraie message avant pas du tous facile a comprendre desole)
merci
Re: PB BETWEEN
Posté : 02 juil. 2010, 10:52
par macgawel
Pour faire simple, je dirais :
Table TARIFS => Un enregistrement par jour.
Code : Tout sélectionner
Date_location;Tarif
01/01/2010;100
02/01/2010;50
...
31/12/2010;100
Puis quand quelqu'un regarde pour une période, tu vas chercher dans TARIFS les dates correspondantes
SELECT * from TARIFS where Date_location between $date_debut and $date_fin;
Re: PB BETWEEN
Posté : 02 juil. 2010, 10:58
par hashut
donc 365 tarifs ouf cela vas etre long car chaque année sa change
Re: PB BETWEEN
Posté : 02 juil. 2010, 11:03
par ouckileou
Et bien il te suffit d'adapter tes conditions :
date_debut_recherche_client between date_debut_base et date_fin_base
et/ou
date_fin_recherche_client between date_debut_base et date_fin_base
Tu auras la ou les périodes tarifaires correspondantes.
Re: PB BETWEEN
Posté : 02 juil. 2010, 11:19
par macgawel
donc 365 tarifs ouf cela vas etre long car chaque année sa change
J'ai parlé d'une solution simple, je n'ai pas dis que ce n'atait pas fastidieux
Tu peux toujours faire un tarif par défaut. Si la date n'est pas dans la table, tu l'appliques.
Et un truc comme ça, tu l'automatise

(genre, tu donnes la date de début de période, date de fin de période, tarif et PHP gère les X insertions...)
Une autre solution, c'est d'avoir une table
TARIFS (Date_debut, Date_fin, Tarif). Mais au moment de la création de tes tarifs il faut bien penser à tester la cohérence (si tu as déjà la période 01/01 -> 31/03 il faut interdire la période 01/02 -> 15/02).
Mais dans ce cas,c'est plus complexe à gérer vu qu'une période de réservation peut couvrir une ou plusieurs périodes tarifaires.
En gros :
SELECT * from TARIFS where Date_debut <= $date_fin_reservation AND Date_fin >= $date_debut_reservation;
Pour récupérer les périodes tarifaires. Ensuite, il faudra encore travailler dessus et détailler jour par jour pour calculer le tarif du séjour.
Re: PB BETWEEN
Posté : 02 juil. 2010, 11:54
par hashut
est il possible de faire <= avec BETWEEN
Re: PB BETWEEN
Posté : 02 juil. 2010, 12:43
par ouckileou
est il possible de faire <= avec BETWEEN
regarde la doc de between
Re: PB BETWEEN
Posté : 02 juil. 2010, 15:42
par hashut
Merci
c'est ok
j'ai diviser tous par mois et vacance cela fait 20 ligne donc sa vas et mis ton code
sa marche nikel
merci
Re: PB BETWEEN
Posté : 02 juil. 2010, 16:23
par ouckileou
J'ai rien compris...