如何仅在预订系统上选择可用的房间?

时间:2019-06-29 18:34:32

标签: php mysql pdo

我正在尝试为酒店建立预订系统,我不知道如何仅选择可用的房间? 我有两个表: 名为“ chambre”的房间表具有:id, libelle,名为“ reservation_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 个答案:

答案 0 :(得分:1)

您只需要加入表,如果您不知道该怎么做,则对mysql LEFT JOIN和INNER 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