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
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
A voir également:
- Besoin d'aide pour réservation php
- Easy php - Télécharger - Divers Web & Internet
- Retour a la ligne php ✓ - Forum PHP
- Réservation frauduleuse booking - Accueil - Arnaque
- Annulation reservation booking par le propriétaire - Forum Consommation & Internet
- Reservation groupon - Forum Consommation & Internet
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
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 .
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 .
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
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.
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.
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
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.
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
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.
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.
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
18 juin 2013 à 16:59
Oui mais quand je dit date j'entends un champ datetime dans ta BDD
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
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 :/
DATE -> date
HEUREBDEUT -> time
HEUREFIN -> time
et non pas qu'un seul :/
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
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 ...
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 ...
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
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
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
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 :
Code pour l'ajout :
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(); } ?>
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
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.
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.