2016-03-03 37 views
1

我想创建一个酒店房间预订应用程序....我已经创建了两个表如何提供合适的查询,以检查房间可用性

  • 它由roomno(PK)的表空间,房型与房价

  • 它由roomno(FK),房型的可用性表,办理登机手续,日期和退房的最新

我到目前为止创建的PHP代码允许我检查可用性特定类型的房间给定日期...

$type = $_POST['pincode']; 
$cin = $_POST['cin']; 
$cout = $_POST['cout']; 

$sql="select * from avalability where type = '$type' and cout>='$cin' and cin<='$cout'"; 
$res=mysqli_query($con,$sql); 
$check=mysqli_fetch_array($res); 
if(isset($check)) 
{ 
echo "rooms not available"; 
} 
else 
{ 
echo "rooms available"; 
$insert="insert into login.avalability(type,cin,cout) values('$type','$cin','$cout')"; 
mysqli_query($con,$insert); 
} 
mysqli_close($con); 
?> 

现在我的问题:假设我有我的房间桌子和一个单间5点单间已经预订了说,3月23日至27日3月,这使得其他四个房间免费...

但我给出的代码不适用于这个问题...任何人都可以请给我正确的查询,以检查房间的可用性正确吗?

回答

0

我认为你的可用性表不是真正的可用性,它是保留。该表中数据的生命周期尚不清楚,但似乎您的查询没有在没有cin或cout的地方提取。

$sql="select * from avalability where type = '$type' and cout>='$cin' and cin<='$cout'" 

应该像

$sql="SELECT * FROM avalability WHERE type = '$type' AND ((cout>='$cin' AND cin<='$cout'") OR (cout='' AND cin='')) 
+0

好耶的预订表...我的查询工作正常检查一切...我的问题是,如果我有5点单间,一个是徒劳的,一些日期和其他4是免费的...当一个人在同一日期搜索一个单一的房间我的应用程序应该能够显示我的可用性...我怎么做这是我的问题? – Aarthi

+0

您是否可以更新您的问题,以便在您想要查询时实际包含每个表中的数据? –