2015-05-01 21 views
0

我真的很苦惱於一些php代碼。這是大學的任務。我正在設計一個夜總會VIP區的預訂系統。我希望能夠在表格中顯示可用區域,然後我可以選擇該區域並繼續爲搜索日期預訂該區域。顯示預訂系統中哪些區域可用php

基本上我設法寫了一些代碼,我想我到了那裏,但我現在只是有點卡住了。我附上了availablebooking.php文件,我希望能夠從數據庫中提取當前未搜索日期的區域。我試圖做的是拉area_idroom_name,其中area_id不在搜索日期的預訂表中,導致顯示的區域全部可用。但是我設法編寫的代碼顯示相反,因此它顯示預訂的房間,而不是可用的房間。

只是尋找一些指導。

availablebooking.php

$Criteria = $_POST ['criteria']; 
$query = "SELECT Area.Area_id, Room.Room_name FROM Booking_details 
     INNER JOIN Area ON Area.Area_id=Booking_details.Area_id 
     INNER JOIN Room ON Room.Room_id=Area.Room_id 
     INNER JOIN Booking ON Booking_details.Booking_id=Booking.Booking_id 
     WHERE Booking.Date != $Criteria"; 

$result = mysqli_query($dbcon, $query) or die("Error getting data"); 

echo "<table>"; 
echo "<tr> <th> Area</th> <th> Room </th>"; 

while ($row = mysqli_fetch_array($result)) { 

echo "<tr><td>"; 
echo $row['Area_id']; 
echo "</td><td>"; 
echo $row['Room_name']; 
echo "</td></tr>"; 

} 
+1

嘗試切換到左連接上的預訂,加入 「和Booking.Date是NULL」 where子句 – dbinns66

+0

謝謝@ dbinns66,但它沒有解決它,因爲它只顯示錶,但沒有數據。我希望它能夠給我展示了可用於檢索日期的所有領域(搜索日期是使用HTML文件形式) \t \t \t \t \t <輸入類='文本black'type = 「text」name =「criteria」/> –

+0

除上述要點外,日期通常需要用引號括起來。 – Strawberry

回答

1
SELECT a.Area_id 
     , r.Room_name 
    FROM Booking_details d 
    JOIN Area a 
     ON a.Area_id = d.Area_id 
    JOIN Room r 
     ON r.Room_id = a.Room_id 
    LEFT JOIN Booking b 
    ON d.Booking_id = b.Booking_id 
    AND b.Date = '$Criteria' 
    WHERE b.date IS NULL; 

或者類似的東西

+0

現在,看起來有點兒熟悉LOL – dbinns66

+0

有一個重要的區別 – Strawberry

+0

=剛剛抓住它......很好......我通常喜歡在連接上做「儘可能多的」......確實非常棒! – dbinns66