Как выбрать только свободные номера в системе бронирования? - PullRequest
0 голосов
/ 29 июня 2019

Я пытаюсь построить систему бронирования отелей, и я не знаю, как выбрать только свободные номера?У меня есть две таблицы: таблица комнат с именем "chambre": id, libelle и таблица с именем "booking_client": id, id_client, id_chambre, start, end.Для начала и окончания они являются начальной датой бронирования и окончанием бронирования

Это моя выбранная форма:

<div class="form-group">
    <label class="col-sm-2 control-label">Chambre</label>
    <div class="col-sm-9">
        <select class="form-control" name="id_chambre">
            <option>Selectionnez une chambre</option>

            <?php 
                 /*echo $req2=$bdd->query('SELECT * FROM reservation_client WHERE $donnees["start"]!==$_POST["start"] ' )/*or die (print_r($bdd->errorinfo()))*/
                $req=$bdd->query('SELECT * FROM chambre' )/*or die (print_r($bdd->errorinfo()))*/;

                $req2=$bdd->query('SELECT * FROM reservation_client ' );
                    while ($donnees = $req->fetch() ) { 

                  echo"<option  value='".$donnees['id']."'>".($donnees['libelle']) ."</option> "  ;                                                 
                      }                   
              ?>

        </select>
    </div>
</div>

Я пробовал этот код, но безрезультатно:

$req2=$bdd->query('SELECT * FROM reservation_client WHERE start<end AND end>star ' );

1 Ответ

1 голос
/ 30 июня 2019

Вам просто нужно присоединиться к столу, если вы не знаете, как это сделать, то проведите некоторое исследование по mysql LEFT JOIN и INNER JOIN. В этом случае вы хотите LEFT JOIN, чтобы включить строки без соответствующего резервирования. Я не могу написать это точно, потому что я не знаю ваших таблиц, но этот пример должен дать вам представление:

SELECT * FROM chambres c
LEFT JOIN reservation_client rc ON rc.chambre = c.id
WHERE rc.date BETWEEN (your date range)
AND rc.id IS NOT NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...