2016-03-03 41 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

您是否可以更新您的問題,以便在您想要查詢時實際包含每個表中的數據? –