Page 1 sur 1

probléme de gestion des dates

Posté : 11 avr. 2012, 22:19
par nedalhardy
bonsoir ,
bon je présante ma base de donneés , j'ai un projet de gestion des salles , il exicte 6 salles , une de conferance et 5 de reunion , chaque entite peux reserrvé cette salle dans une date précise avec une heure de début et une heure de fin .
bon mes tables :
ENTITE(id_entite , code_entite , description_entite,description_entite_parent,type_entite)

SALLE(id_salle , nom_salle , status , type_salle)

RESERVE(id_salle ,id_entite,date_reservation)

UTILISATEUR(login , password , profil)

EVENEMENT(id_even,id_salle , id_entite , login , nom , theme , date , heure_debut , heure_fin , discfontionement_technique)

bon voila


quand j'insére un nouveau evenement je fai une condition pour voir si il veu reservé dans la méme salle et la méme date , si la condition ne marche pas,
alors il va inserer directemenet donc ça va

mais le probléme si il exicte une reservation dans la méme date et salle , alors on passe aux heure maintenant
j'ai elaboré une méthode qui défini les heures vides


$heure="select heure_debut,heure_fin from EVENEMENT where id_salle='$salle' and MONTH(date)='$m' and year(date)='$Y' and DAY(date)='$d' order by HEURE_DEBUT";
$process=odbc_exec($sqlconnect,$heure);

$int=9;
while($date=mysql_fetch_row($process)){
$date[1]=$hdebut;
$date[2]=$fin;

$intervalle=$hdebut-$int;
if($intervalle>0)
{ echo"reservation possible de $int h justqu'a $hdebut <br/>";
$int=$hfin;}}


cette méthod vas afficher par exmple :

la salle est vide de 9h a 10
la salle est vide de 13h a15h


le probléme c'est comment pouvoir inserer celon ses heures , genre ne pas donné un choix a celui qui saisi sauf ses heures ,

Re: probléme de gestion des dates

Posté : 12 avr. 2012, 11:20
par Mazarini
Le plus simple me semble de contrôler la disponibilité lors du traitement de la demande de réservation, juste avant l'enregistrement. Ca n'empêche pas d'afficher les dispo pour aider l'utilisateur à choisir.

Si cela peut t'aider, 2 plages sont distincts si l'une se termine avant le début de l'autre ou commence après la fin de l'autre (évident).
Et donc, elle se chevauche si l'une commence avant la fin de l'autre et se termine après le début de l'autre (facile par négation de la précédente).