2012-02-11 69 views
0

我已創建一個數據庫與三個表。我有一個表「字段」,其中有一個從1到5的id_field和一個具有開始和結束時間的表名槽。當我想顯示所有可用的字段和時間是好的,但我希望顯示id值爲1的字段仍顯示所有字段!!!!!MY SQL比較語句!不起作用的比較聲明

這裏是我的代碼:

echo("<select name='selSlot'>"); 
$mysql_link = mysql_connect("localhost","root","*********"); 
$db_select = mysql_select_db("nuevo", $mysql_link); 
$query = "SELECT * FROM field WHERE id_field = 1 CROSS JOIN slot WHERE (id_field,id_slot) ". 
"NOT IN(Select field_slot,res_slot From reservation WHERE res_date = '" 
    .$today['year']."-".$today['mon']."-".$today['mday']."') ORDER by id_field,id_slot"; 
$result = mysql_query($query) 
    or die ("Query '$query' failed with error message: " . mysql_error()); 
$row = mysql_fetch_assoc($result); 
echo "apoel"; 
while ($row) { 
    echo("<option value='" .$row['id_field'].",".$row['id_slot']."'>".$row['description']. 
     " ".$row['start_time']."-".$row['end_time']." </option>"); 
    $row = mysql_fetch_assoc($result); 
} 
echo("</select>"); 

我不知道爲什麼它不給我看只有場ID之一,仍然顯示我的所有字段!!!!

+2

您需要解釋什麼問題更好。請閱讀本指南如何提出更好的問題關於SO http://stackoverflow.com/questions/how-to-ask – Relequestual 2012-02-12 00:01:03

回答

1

您的查詢有兩個WHERE條款:

.... WHERE id_field = 1 CROSS JOIN slot WHERE ... 

應該導致數據庫錯誤。正確的語法是:

SELECT * 
FROM field 
    CROSS JOIN slot 
WHERE id_field = 1 
    AND (id_field,id_slot) 
... 
+0

當我像這樣運行它仍然顯示我所有的領域..它不給我任何錯誤 – apoellitsi 2012-02-12 00:14:42

+0

不,這不可能是真的。在運行之前打印(回顯)'$ query'並將其發佈到問題中。 – 2012-02-12 00:20:07

+0

嗯,它不打印任何東西!我應該做些什麼來獲得id_field 1,我需要比較它以獲得正確的結果!!? – apoellitsi 2012-02-12 00:25:26