boucle de réservation sur date
Bonjour à tous.
Petit exercices de boucle
J'ai 25 chambre repartie de façon identique entre 5 villes donc 5 villes X 5 chambres.
Pour le moment j'arrive à affecter une chambre différente pour des dates et ville identique.
Mais si deux clients veulent louer l'un après l'autre la première chambre n'est pas redevenue disponible.
exemple client 'un' loue la chambre 105 de Albi du 1 au 2 Si le client 'deux' veut louer du 3 au 4 il aura la chambre 104. Alors que la 105 est libre
je pense que la solution ce ferra dans ma seconde boucle ELSEIF mais je n'y arrive pas.
Code:
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
| function verif($name, $choicecity, $datedebut, $datefin){
$servername = 'localhost';
$username = 'root';
$password = '';
$dbase = 'mabase';
$today = date("Y-m-d");
$chambre=100;
while(++$chambre <=105){
$mysqli = new mysqli ('127.0.0.1', 'root','', 'mabase');
$result = $mysqli->query("SELECT nom, debut, fin, chambre FROM reservation WHERE choicecity ='$choicecity' and chambre='$chambre'");
$row= $result->fetch_array();
/*echo 'test pour la chambre' . $chambre .'<br>';*/
if ((!isset ($row ['debut'])) and (!isset ($row ['fin']))) {/* aucune reservation pour cette ville */
$pdo = new PDO("mysql:host=$servername;dbname=$dbase","$username","$password");
$city = "UPDATE reservation SET debut='$datedebut', fin='$datefin',
choicecity='$choicecity', chambre='$chambre' WHERE nom='$name'";
$resultcity = $pdo->exec($city);
}
elseif (($datedebut >= ($row ['fin'])) || ($datefin < ($row ['debut'])) ) {
/* la solution est la mais ou ????*';
}
}
if (($datedebut >= ($row ['debut'])) && ($datedebut <= ($row ['fin']))){
echo 'date de depart pour la ville de '. $choicecity .'déja prise';
}
} |
Table reservation:
id |
creation |
debut |
fin |
choicecity |
chambre |
nom |
mail |
16 |
NULL |
30/12/2020 |
31/12/2020 |
Albi |
105 |
un |
un.free.fr |
19 |
NULL |
30/12/2020 |
31/12/2020 |
Albi |
104 |
deux |
deux@free.fr |
20 |
NULL |
30/12/2020 |
31/12/2020 |
Auch |
105 |
trois |
trois@free.fr |
21 |
NULL |
01/01/2021 |
02/01/2021 |
Auch |
104 |
quatre |
quatre@free.fr |