2014-01-19 18 views
0

我擁有的值在一個會話中。我不能使用JOIN(我假設),因爲這是用於多個表。我正在一張桌子上工作。獲取多行ID無循環

該表被稱爲「VEHICLES」。每行都有一個名爲'car'的字段,並具有AUTO INCREMENTED ID。我需要每個$ car *的ID。所以我想要一個只有$ car *存在時纔會拉ID的查詢。

總是會有至少一個$ car *。但是2,3,4輛汽車等都是可能的。如何檢查並查詢這些可能存在的$汽車?

$car1 = 'Honda'; 
$car2 = 'Mazda'; 
$car3 = ''; 

$query="SELECT 
    id(WHERE car='$car1') as My_car1, 
    id(WHERE car='$car2') as My_car2, 
FROM VEHICLES"; 

list($My_car1,$My_car2)=pdo_fetch_array(pdo_query($query)); 

我意識到我的查詢是錯誤的,並且不起作用。但這是我能夠直觀解釋我想要做什麼的唯一方式。

+0

你不應該使用'$ car1,$ car2',而是像'$ car [1],$ car [2]''這樣的數組。這將使解決方案更易於實施。 – Anthony

+0

非常感謝答覆,安東尼。我如何使數組的可能結果? – Mike

+0

只需重構代碼,以便'$ car1 ='Honda';'替換爲'$ car [1] ='Honda''。然後,您可以使用'implode()'將數組轉換爲可用於查詢的以逗號分隔的字符串。 – Anthony

回答

1

基本SQL:

SELECT id 
FROM VEHICLES 
WHERE car IN ('Honda', 'Mazda') 

而作爲一般的提示,NEVER鏈DB調用你的方式。數據庫操作可能會失敗,並且您正在假設成功。如果任何「內部」調用失敗,它們將返回一個布爾值false並打破外部調用。爲什麼事情會失敗,你會被矇在鼓裏。

從不在處理外部資源時假定成功。總是認爲一切都會失敗,檢查每個階段的失敗,並將成功視爲令人驚喜的事情。

+0

謝謝,Marc。我會讀到你的建議,因爲我是初學者,真的不明白DB的意思。在一個側面說明,我不明白如何檢查建議查詢現有的$汽車。 – Mike