IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] Réservation de salles...


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Par défaut [Dates] Réservation de salles...
    Bonjour à toutes et à tous,

    Comme d'habitude, je reviens vers vos supers conseils (et compétences) lorsque je chauffe trop sur un probléme...

    Voilà ma soucis :

    Je devellope un outils de reservation de salles .

    J'en suis donc au stade de la requête permettant de savoir si une salle est disponible ou non à une date donnée sur une tranche horaire donnée .

    Voici la fonction que j'utilisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    function F_CheckDispo ($BegResa, $EndResa, $EndM, $DateResa, $RoomResa, $Retro, $cnx)
    {
    	$l_BegResa = $BegResa;
    	$l_EndResa = $EndResa;
    	$l_EndM  = $EndM;
     
    		$l_BegResa[4] = 1;
     
     
    		if ($l_EndM == 30)
    			{
    				$l_EndM = 29 ;
    				$l_EndResa = $l_EndResa.":".$l_EndM.":00";
    			}
    			else
    			{
    				$l_EndM = 59;
    				if (substr($l_EndResa,0,1)== 0 )
    				{
    					$tmp = intval($l_EndResa[1]);
    					$tmp--;
    					$l_EndResa[1] = $tmp ;
    					$l_EndResa = $l_EndResa.":".$l_EndM.":00";
    				}
    				else 
    				{
    				 	$tmp = intval(substr($l_EndResa,0,2));
    				 	$tmp -- ;
     
    				 	if ($tmp < 10)
    				 	{
    				 		$l_EndResa = "0".$tmp.":".$l_EndM.":00";	
    				 	}
    				 	else
    				 	{
    				 		$l_EndResa = $tmp.":".$l_EndM.":00";
    				 	}
     
    				}
    			}
     
    	$qry =  
    			"SELECT COUNT(*) FROM ".RESA." ".
    			"WHERE NOT(('".$begresa."'< BegRs ".
    			"AND '".$endresa."'< BegRs ) ".
    			"OR ('".$begresa."'> EndRs ".
    			"AND '".$endresa."'> EndRs )) ".
    			"AND IdRm =".$idroom." ". 
    			"AND DateRs ='".$curyear."-".$curmonth."-".$curday."'";	 		
    	//echo "<br>".$qry2;
    			$ret = mysql_query ($qry2, $cnx) or die(mysql_error() );
    			$col = mysql_fetch_row ($ret) ;
     
    	if (isset($col[0]))
    	{
     
    		return false;
    	}
    	else 
    	{ 
    		return true ;
    	}
     
    }
     
    if ( $col[0] ) { 
    Alors la salle n'est pas dispo

    Au départ j'utilisais seulement la requête suivante

    Cette requête est presque parfaite, sauf qu'elle ne permet des reservations contigues , exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		$qry =  
    			"SELECT COUNT(*) FROM ".RESA." ".
    			"WHERE NOT(('".$begresa."'< BegRs ".
    			"AND '".$endresa."'< BegRs ) ".
    			"OR ('".$begresa."'> EndRs ".
    			"AND '".$endresa."'> EndRs )) ".
    			"AND IdRm =".$idroom." ". 
    			"AND DateRs ='".$curyear."-".$curmonth."-".$curday."'";
    Malheureusment pour le cas d'une réservation commencant à 09h00 et finissant à 10h00 existant déjà avec cette requête impossible de placer une réservation de 08h00 à 09h00 , 09h00 étant déjà réservé ...

    J'ai essayé de palier ce soucis en testant les tranches de réservation sur
    - HeureDeb + 1 min - HeureFin - 1 min
    Exemple : Un rendez vous pris de 08h00 à 09h00 sera tester sur la tranche 08h01 à 08h59...

    D'où les tests et le formatage du départ...

    Mais du coup le requête est devenu trop permissive...

    J'en appelle donc à vos lumiére , à vos expériences ...

    Comment gérer ce cas ?

    Une requête est elle suffisante, ou faut-il obligatoirement passé par du code ? ( PHP pour ce qui me concerne)

    Merci d'avance pour vos réponses.

    Amicalement
    Jérémy

  2. #2
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    evites de poster dans 2 fois le même sujet dans 2 themes differents
    Pour ceux qui auraient pas comris, rendez vous ici

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    As-tu essayé mrbs ?
    http://mrbs.sourceforge.net/

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    ce ne serait pas pour un projet scolaire à tout hasard ?

    auquel cas, ce n'est pas une option... sauf si tu modifies beaucoup le code
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 63
    Par défaut
    Citation Envoyé par loka
    evites de poster dans 2 fois le même sujet dans 2 themes differents
    Pour ceux qui auraient pas comris, rendez vous ici
    Oui je sais, c'est pas bien...

    Mais d'un autre côté ma question était elle resolvable uniquement à l'aide d'une requête ?

    Apparement oui , et j'avoue que je n'étais pas loin... Un peu trop engonsser dans mon code et pas assez d'analyse... Manque de temps en fait...

    Citation Envoyé par vg33
    As-tu essayé mrbs ?
    http://mrbs.sourceforge.net/
    En fait non, j'ai recuperé une autre base (un peu foireuse aposteriori) que j'ai adapté au besoin de la société pour laquelle je bosse...

    Au final une fois la requête corrigé de ces dysfonctionnement , le résultat ne devrait pas être loin d'être similaire... Mais merci pour la découverte ...

    Citation Envoyé par gorgonite
    ce ne serait pas pour un projet scolaire à tout hasard ?

    auquel cas, ce n'est pas une option... sauf si tu modifies beaucoup le code
    Non , il ne s'agit pas d'un projet scolaire...

    Merci à tous les trois pour vos réponses en tous les cas !

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    A ta place, je ferais les réservations de xh00 à xh59 (exemple : de 8h00 à 8h59). Comme ça, la plage fait pile 1 heure (60 min), et tu n'as pas de problème de plage continue puisque la suivante commence à 9h00.

Discussions similaires

  1. [MCD] Système gestion/réservation de salle
    Par zebu14 dans le forum Schéma
    Réponses: 2
    Dernier message: 27/06/2009, 23h40
  2. Réservation de salles sur long terme
    Par phberanger dans le forum Exchange Server
    Réponses: 0
    Dernier message: 02/04/2009, 12h03
  3. Création d'un Planning réservation de salles
    Par ricolaricot dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 19/11/2008, 09h52
  4. Réponses: 1
    Dernier message: 28/09/2006, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo