Besoin d'aide pour réservation php

Fermé
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014 - 18 juin 2013 à 14:30
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 - 20 juin 2013 à 19:02
Bonjour,
Voilà étant en stage, je m'occupe d'une application qui gère la reservation de différentes salles, et j'aimerai que quand l'utilisateur essaye de réserver une salle qui est déjà prise ce jour là à ces horaires là soit impossible en lui indiquant. Le truc c'est que je n'ai aucune idée de comment faire cela :/
A voir également:

10 réponses

mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
18 juin 2013 à 15:27
Bonjour,
il faut que tu fasses une base de données avec comme colonne la salle l'horaire de début d'une réservation et l'horaire de fin .
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
18 juin 2013 à 16:18
Oui j'ai mes base de données.
Le truc c'est que je vois pas comment faire pour savoir si une salle est déjà reservée ou non. Et si elle l'est afficher un message comme quoi la réservation n'est pas possible.
0
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
18 juin 2013 à 16:44
Il faut faire une interrogation de la base lorsqu'une réservation veut être faite. Comparé les dates . Si la date de début de la réservation n'est pas compris entre une date de la table. Idem pour la date de fin.
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
Modifié par shishi1906 le 18/06/2013 à 16:51
La date peux-etre la même, les heures elle sont différentes.
Je m'explique :

Prenons une salle B. Une date X et une date Y.

la salle B elle est réservée le jour X de 14:00 à 19:00 et le jour Y de 15:00 à 16:00

Disons que je veux rentrée une nouvelle réservation pour la salle B le jour X de 18:30 à 19:30. -> Je voudrais que cela me dise que la salle est déjà prise.

Disons que je veux rentrée une nouvelle réservation pour la salle B le jour Y de 8:00 à 12:00 -> Dans ce cas pas de soucis les données rentre correctement dans la base.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
18 juin 2013 à 16:59
Oui mais quand je dit date j'entends un champ datetime dans ta BDD
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
18 juin 2013 à 17:06
Il se trouve quand dans ma base de donnée j'ai 3 champs :

DATE -> date
HEUREBDEUT -> time
HEUREFIN -> time

et non pas qu'un seul :/
0
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
18 juin 2013 à 17:13
OK et bien lors de la réservation il suffit de comparer la date choisie avec les dates de la BDD.
Par exemple :
$date -> date choisie
$heuredebut -> heure debut choisie
$heurefin -> idem

tu fais une requete qui compte le nombre de fois ou la date est retrouvée ( 0 fois c'est bon la réservation peut etre inserer / 1 fois pas bon)
exemple de la requete :
select * from tatable where $date = ton champs date and $heuredebut between ton champs heuredebut and ton champs heure fin ...
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
18 juin 2013 à 17:18
J'ai compris, merci je te tiens au courant dès ce soir (si j'ai le temps de tester, sinon demain). Merci encore
0
shishi1906 Messages postés 93 Date d'inscription mercredi 1 mai 2013 Statut Membre Dernière intervention 27 mars 2014
19 juin 2013 à 11:28
Bonjour, alors j'ai essayé selon ce que j'ai compris mais cela ne marche pas voici mon code :

code des saisie des informations :
<form method="post" action="ajoutreservation.php">
				Choix de la reservation : <select name="idobjet">
				<option value="0">---------------</option>
			
				<?php
					// connexion à la base
					$base = mysql_connect ("localhost", "root", "") or die('Erreur de connexion '.mysql_error());
		
					// sélection de la base 
					mysql_select_db('csc_apli',$base)  or die('Erreur de selection '.mysql_error());
					
					//Récuperation de la valeur du bouton par méthode POST
					$bouton=$_POST['bouton'];
					
					//écriture de la requête sql
					$sql2= "SELECT * FROM objet WHERE idtypeobjet=$bouton";

					//exécution de la requete
					mysql_query($sql2) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
					
					//$result2 prend la valeur de la requete
					$result2=mysql_query($sql2);
				
					//création de la liste déroulante voulue
					while ($ligne=mysql_fetch_array($result2))
					{
					   echo '<OPTION VALUE="'.$ligne["IDOBJET"].'">'.$ligne["LIBELLE"].'</OPTION>';
					}
					
					//bouton valider
					echo '<input type="submit" value="Valider" class="invisible"/>';
					
					//si la valeur du bouton = 2 (Salle dans la base de données) alors :
					if($bouton==2)
					{
						echo '<br />
						Choix du type de motif : <select name="idtypemotif">
						<option value="0">---------------</option>';
						
						//requete sql
						$sql3= "SELECT * FROM type_motif";
						
						//execution de la requete
						mysql_query($sql3) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
						
						//$result3 prend la valeur de la requete
						$result3=mysql_query($sql3);
					
						//création de la liste déroulante avec les information de $result3
						while ($ligne=mysql_fetch_array($result3))
						{
						   echo '<OPTION VALUE="'.$ligne["IDTYPEMOTIF"].'">'.$ligne["LIBELLE"].'</OPTION>';
						}
						//bouton valider
						echo '<input type="submit" value="Valider" class="invisible"/>';

						echo '<br />
						Choix du motif : <select name="idmotif">
						<option value="0">---------------</option>';
						
						//écriture de la requête
						$sql4= "SELECT * FROM motif ORDER by libelle ASC";
						
						//execution de la requete
						mysql_query($sql4) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
						
						//$result4 prend la valeur de la requete précédente
						$result4=mysql_query($sql4);
					
						//création de la liste déroulante contenant les valeurs de $result4
						while ($ligne=mysql_fetch_array($result4))
						{
						   echo '<OPTION VALUE="'.$ligne["IDMOTIF"].'">'.$ligne["LIBELLE"].'</OPTION>';
						}
						
						//bouton valider
						echo '<input type="submit" value="Valider" class="invisible"/>';
					}
				?>
				
				<br />
				Jour : <select name="jour">
					<option value="0">---------------</option>
					<option value="1"> 1</option>
					<option value="2"> 2</option>
					<option value="3"> 3</option>
					<option value="4"> 4</option>
					<option value="5"> 5</option>
					<option value="6"> 6</option>
					<option value="7"> 7</option>
					<option value="8"> 8</option>
					<option value="9"> 9</option>
					<option value="10">10</option>
					<option value="11">11</option>
					<option value="12">12</option>
					<option value="13">13</option>
					<option value="14">14</option>
					<option value="15">15</option>
					<option value="16">16</option>
					<option value="17">17</option>
					<option value="18">18</option>
					<option value="19">19</option>
					<option value="20">20</option>
					<option value="21">21</option>
					<option value="22">22</option>
					<option value="23">23</option>
					<option value="24">24</option>
					<option value="25">25</option>
					<option value="26">26</option>
					<option value="27">27</option>
					<option value="28">28</option>
					<option value="29">29</option>
					<option value="30">30</option>
					<option value="31">31</option>
				</select>
				
				<br />
				Mois : <select name="moi">
					<option value="0">---------------</option>
					<option value="1"> Janvier</option>
					<option value="2"> Février</option>
					<option value="3"> Mars</option>
					<option value="4"> Avril</option>
					<option value="5"> Mai</option>
					<option value="6"> Juin</option>
					<option value="7">Juillet</option>
					<option value="8"> Août</option>
					<option value="9"> Septembre</option>
					<option value="10"> Octobre</option>
					<option value="11"> Novembre</option>
					<option value="12"> Décembre</option>
				</select>
				
				<br />
				Année : <select name="annee">
					<option value="0">---------------</option>
					<option value="2013"> 2013</option>
					<option value="2014"> 2014</option>
					<option value="2015"> 2015</option>
					<option value="2016"> 2016</option>
					<option value="2017"> 2017</option>
					<option value="2018"> 2018</option>
					<option value="2019">2019</option>
					<option value="2020"> 2020</option>
					<option value="2021"> 2021</option>
					<option value="2022"> 2022</option>
					<option value="2023"> 2023</option>
					<option value="2024"> 2024</option>
				</select>
		
				<br />
				Heure Début : <select name="hd">
					<option value="0">---------------</option>
					<option value="00:00">00:00</option>
					<option value="00:15">00:15</option> 
					<option value="00:30">00:30</option> 
					<option value="00:45">00:45</option> 
					<option value="01:00">01:00</option> 
					<option value="01:15">01:15</option> 
					<option value="01:30">01:30</option> 
					<option value="01:45">01:45</option> 
					<option value="02:00">02:00</option> 
					<option value="02:15">02:15</option> 
					<option value="02:30">02:30</option>
					<option value="02:45">02:45</option>
					<option value="03:00">03:00</option>
					<option value="03:15">03:15</option>
					<option value="03:30">03:30</option>
					<option value="03:45">03:45</option>
					<option value="04:00">04:00</option>
					<option value="04:15">04:15</option>
					<option value="04:30">04:30</option>
					<option value="04:45">04:45</option>
					<option value="05:00">05:00</option>
					<option value="05:15">05:15</option>
					<option value="05:30">05:30</option>
					<option value="05:45">05:45</option>
					<option value="06:00">06:00</option>
					<option value="06:15">06:15</option>
					<option value="06:30">06:30</option>
					<option value="06:45">06:45</option>
					<option value="07:00">07:00</option>
					<option value="07:15">07:15</option>
					<option value="07:30">07:30</option>
					<option value="07:45">07:45</option>
					<option value="08:00"> 08:00</option>
					<option value="08:15"> 08:15</option>
					<option value="08:30"> 08:30</option>
					<option value="08:45"> 08:45</option>
					<option value="09:00"> 09:00</option>
					<option value="09:15"> 09:15</option>
					<option value="09:30"> 09:30</option>
					<option value="09:45"> 09:45</option>
					<option value="10:00"> 10:00</option>
					<option value="10:15">10:15</option>
					<option value="10:30">10:30</option>
					<option value="10:45">10:45</option>
					<option value="11:00">11:00</option>
					<option value="11:15">11:15</option>
					<option value="11:30">11:30</option>
					<option value="11:45">11:45</option>
					<option value="12:00">12:00</option>
					<option value="12:15">12:15</option>
					<option value="12:30">12:30</option>
					<option value="12:45">12:45</option>
					<option value="13:00">13:00</option>
					<option value="13:15">13:15</option>
					<option value="13:30">13:30</option>
					<option value="13:30">13:45</option>
					<option value="14:00">14:00</option>
					<option value="14:15">14:15</option>
					<option value="14:30">14:30</option>
					<option value="14:45">14:45</option>
					<option value="15:00">15:00</option>
					<option value="15:15">15:15</option>
					<option value="15:30">15:30</option>
					<option value="15:45">15:45</option>
					<option value="16:00">16:00</option>
					<option value="16:15">16:15</option>
					<option value="16:30">16:30</option>
					<option value="16:45">16:45</option>
					<option value="17:00">17:00</option>
					<option value="17:15">17:15</option>
					<option value="17:30">17:30</option>
					<option value="17:45">17:45</option>
					<option value="18:00">18:00</option>
					<option value="18:15">18:15</option>
					<option value="18:30">18:30</option>
					<option value="18:45">18:45</option>
					<option value="19:00">19:00</option>
					<option value="19:15">19:15</option>
					<option value="19:30">19:30</option>
					<option value="19:45">19:45</option>
					<option value="20:00">20:00</option>
					<option value="20:15">20:15</option>
					<option value="20:30">20:30</option>
					<option value="20:45">20:45</option>
					<option value="21:00">21:00</option>
					<option value="21:15">21:15</option>
					<option value="21:30">21:30</option>
					<option value="21:45">21:45</option>
					<option value="22:00">22:00</option>
					<option value="22:15">22:15</option>
					<option value="22:30">22:30</option>
					<option value="22:45">22:45</option>
					<option value="23:00">23:00</option>
					<option value="23:15">23:15</option>
					<option value="23:30">23:30</option>
					<option value="23:45">23:45</option> 
				</select>
					
				<br />
				Heure Fin : <select name="hf">
					<option value="0">---------------</option>
					<option value="00:00">00:00</option>
					<option value="00:15">00:15</option> 
					<option value="00:30">00:30</option> 
					<option value="00:45">00:45</option> 
					<option value="01:00">01:00</option> 
					<option value="01:15">01:15</option> 
					<option value="01:30">01:30</option> 
					<option value="01:45">01:45</option> 
					<option value="02:00">02:00</option> 
					<option value="02:15">02:15</option> 
					<option value="02:30">02:30</option>
					<option value="02:45">02:45</option>
					<option value="03:00">03:00</option>
					<option value="03:15">03:15</option>
					<option value="03:30">03:30</option>
					<option value="03:45">03:45</option>
					<option value="04:00">04:00</option>
					<option value="04:15">04:15</option>
					<option value="04:30">04:30</option>
					<option value="04:45">04:45</option>
					<option value="05:00">05:00</option>
					<option value="05:15">05:15</option>
					<option value="05:30">05:30</option>
					<option value="05:45">05:45</option>
					<option value="06:00">06:00</option>
					<option value="06:15">06:15</option>
					<option value="06:30">06:30</option>
					<option value="06:45">06:45</option>
					<option value="07:00">07:00</option>
					<option value="07:15">07:15</option>
					<option value="07:30">07:30</option>
					<option value="07:45">07:45</option>
					<option value="08:00"> 08:00</option>
					<option value="08:15"> 08:15</option>
					<option value="08:30"> 08:30</option>
					<option value="08:45"> 08:45</option>
					<option value="09:00"> 09:00</option>
					<option value="09:15"> 09:15</option>
					<option value="09:30"> 09:30</option>
					<option value="09:45"> 09:45</option>
					<option value="10:00"> 10:00</option>
					<option value="10:15">10:15</option>
					<option value="10:30">10:30</option>
					<option value="10:45">10:45</option>
					<option value="11:00">11:00</option>
					<option value="11:15">11:15</option>
					<option value="11:30">11:30</option>
					<option value="11:45">11:45</option>
					<option value="12:00">12:00</option>
					<option value="12:15">12:15</option>
					<option value="12:30">12:30</option>
					<option value="12:45">12:45</option>
					<option value="13:00">13:00</option>
					<option value="13:15">13:15</option>
					<option value="13:30">13:30</option>
					<option value="13:30">13:45</option>
					<option value="14:00">14:00</option>
					<option value="14:15">14:15</option>
					<option value="14:30">14:30</option>
					<option value="14:45">14:45</option>
					<option value="15:00">15:00</option>
					<option value="15:15">15:15</option>
					<option value="15:30">15:30</option>
					<option value="15:45">15:45</option>
					<option value="16:00">16:00</option>
					<option value="16:15">16:15</option>
					<option value="16:30">16:30</option>
					<option value="16:45">16:45</option>
					<option value="17:00">17:00</option>
					<option value="17:15">17:15</option>
					<option value="17:30">17:30</option>
					<option value="17:45">17:45</option>
					<option value="18:00">18:00</option>
					<option value="18:15">18:15</option>
					<option value="18:30">18:30</option>
					<option value="18:45">18:45</option>
					<option value="19:00">19:00</option>
					<option value="19:15">19:15</option>
					<option value="19:30">19:30</option>
					<option value="19:45">19:45</option>
					<option value="20:00">20:00</option>
					<option value="20:15">20:15</option>
					<option value="20:30">20:30</option>
					<option value="20:45">20:45</option>
					<option value="21:00">21:00</option>
					<option value="21:15">21:15</option>
					<option value="21:30">21:30</option>
					<option value="21:45">21:45</option>
					<option value="22:00">22:00</option>
					<option value="22:15">22:15</option>
					<option value="22:30">22:30</option>
					<option value="22:45">22:45</option>
					<option value="23:00">23:00</option>
					<option value="23:15">23:15</option>
					<option value="23:30">23:30</option>
					<option value="23:45">23:45</option> 
				</select>

				<br />
				Salarié : <select name="idsalarie">
				<option value="0">---------------</option>
					<?php
						// Connexion à la base de donnée
						$cnx = mysql_connect("localhost", "root", "") or die("Impossible de se connecter");
						
						// Selection de la base
						$db = mysql_select_db("csc_apli") or die("Impossible de se connecter");
						
						// Selection dans la base type_motif
						$requete5="SELECT * FROM salarie ORDER BY nom ASC";
						
						//Exécution de la requete
						$result5=mysql_query($requete5);
						
						//Selection de tous les champs
						while ($ligne=mysql_fetch_array($result5))
						{
						   echo '<OPTION VALUE="'.$ligne["IDSALARIE"].'">'.$ligne["NOM"].' '.$ligne["PRENOM"].'</OPTION>';
						}
					?>
				</select>
				<input type="submit" value="Enregistrer" />
			</form>




Code pour l'ajout :

<?php
	// On commence par récupérer les champs
	$idobjet=$_POST["idobjet"];
	$idmotif=$_POST["idmotif"];
	$jour=$_POST["jour"];
	$moi=$_POST["moi"];
	$annee=$_POST["annee"];
	$hd=$_POST["hd"];
	$hf=$_POST["hf"];
	$idsalarie=$_POST["idsalarie"];
	
	// On vérifie si le champs est vide
	if(empty($idobjet) or empty($jour) or empty($moi) or empty($annee) or empty($hd) or empty($hf) or empty($idsalarie)){
		echo '<font color="red">Attention, aucun champ ne peut rester vide !!!</font>';
	}
	
	
	// Aucun champ n'est vide, on peut enregistrer dans la table
	else{
		
		// connexion à la base
		$base = mysql_connect ("localhost", "root", "") or die('Erreur de connexion '.mysql_error());
		
		// sélection de la base 
		mysql_select_db('csc_apli',$base)  or die('Erreur de selection '.mysql_error());
		
		//on vérifie si la salle n'est pas déjà prise
		$sql1 = "SELECT DATERES, HEUREDEB, HEUREFIN FROM reservation WHERE $annee/$moi/$jour=DATERES AND $hd BETWEEN HEUREDEB AND HEUREFIN";
		$res1 = mysql_query($sql1);
		
		if($res1==1){
			echo "La réservation n'est pas disponible pour cet horaire";
		}
		else{
		
		// on écrit la requête sql
		$sql = "INSERT INTO reservation (IDRES, IDSALARIE, IDOBJET, IDMOTIF, DATERES, HEUREDEB, HEUREFIN) VALUE ('', '$idsalarie', '$idobjet', '$idmotif', '$annee/$moi/$jour', '$hd', '$hf')";
		
		// on éxécute la requête SQL
		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
		
		// on affiche le résultat pour le visiteur
		echo '<div class="connexion">Vos infos on été ajoutées.</div>';
		
		}
		// on ferme la connexion 
		mysql_close();
	
	}
	?>
0
mahdu972 Messages postés 229 Date d'inscription jeudi 14 juin 2012 Statut Membre Dernière intervention 3 août 2014 18
20 juin 2013 à 19:02
Bonjour,
le probleme c'est que le select ne renvera pas un nombre. Avec votre solution il faut d'abord traiter res1 sous forme de tableau. Le plus simple je pense c'est de faire un select count.
0