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