2014-02-24 35 views
0

我有一個棘手的問題(對我來說這是)從2個不同的表獲取信息的問題。PHP/MySQL加入CSV數組

我有一個數組,像這樣:

$abc=$_COOKIE['cookie']; 
$comma_separated = implode(",", $abc); 

現在,數組將是ID的的CSV列表需要從「特價」表相匹配的ID。在「特價」表中有一個名爲合同名稱的欄。此合同名稱欄需要匹配Products表中相同名稱(每個唯一)的列,並顯示其中包含的信息。

我currenty MySQL查詢看起來是這樣的:

$query= "SELECT specials.id, 
    specials.product_name, 
    specials.contract_name, 
    specials.included_value AS inc_val, 
    specials.image_url, 
    specials.contract_monthly, 
    specials.outlet, 
    products.package, 
    products.bundled, 
    products.included_value 
FROM specials, 
    product 

WHERE `id` IN ('.$comma_separated.') 
AND specials.contract_name = `products.package`"; 

會發生什麼事......沒有任何反應。我試過圍繞一些JOIN教程包裝我的大腦,但沒有運氣。

所以基本上我想顯示一個當前特價清單,以及包含在不同表格中的包裝信息。我試過圍繞一些JOIN教程包裝我的大腦,但沒有運氣。

據我所知,我很糟糕的解釋事情,所以請大聲呼喊,如果我可以解決這個難題更多的燈光。

謝謝! :)

+1

不應該是'products'.'package \'或(甚至更好)products.package。並嘗試添加此行... echo $ query; – Strawberry

+2

**產品**缺少'FROM'特價產品' –

+1

此外,我很失望,這些JOIN教程中沒有提到包含單詞「JOIN」:-( – Strawberry

回答

0

甚至開始得到這個工作,您的$query字符串將不得不是一個有效的查詢。通常,爲了解決這類問題,你需要沿着某個地方做echo $query;以查看它是否有效。然後,您甚至可以將查詢的文本粘貼到獨立的MySQL客戶端(phpMyAdmin或HeidiSQL或其他)來查看您獲得的內容。

望着這行:

WHERE `id` IN ('.$comma_separated.') /* wrong! */ 

它看起來像它需要因爲你使用雙引號包圍你的SQL文本片段閱讀

WHERE `id` IN (".$comma_separated.") 

。此外,您可能需要使用

WHERE `specials`.`id` IN (".$comma_separated.") 

只是因爲一些其他表可能包含id列,然後將搜索子句將是模糊的。