2014-01-30 86 views
0

表引用信息這個問題不好回答了上面的鏈接從另一個表的MySQL

選擇的信息,我有不同的產品主要產品表。不同的產品具有不同的規格,所以我爲每個產品創建了單獨的規格表(其中將有超過10個)。我想要做的是在product_page.php中顯示單個產品的規格,只要點擊產品即可。

我的產品頁面中的列:

ID - SKU - PROD_NAME - prod_desc ....

我的規格表中的列

ID - SKU - prod_specs ....

所以我想從第一張桌上拿出SKU,並用這個UNIQUE SKU搜索桌子的其餘部分,無論它在哪裏顯示該桌子的剩餘部分

我要做的就是

SELECT SKU FROM products AS p 
INNER JOIN cpu_specs AS cs ON cs.SKU = p.SKU 
INNER JOIN hdd_specs AS hs ON hs.SKU = p.SKU 
WHERE p.SKU = $productSKU " 

,但它給了我一個錯誤,當我把它拿來

mysql_fetch_assoc()預計參數1是資源

如果我做SELECT *然後獲取所有信息,從這兩個表

+2

不要通過告訴我們錯誤是什麼來破壞它。 – Strawberry

+1

什麼是錯誤? – TunaMaxx

+0

mysql_fetch_assoc()期望參數1是資源,看起來像查詢停止,如果它沒有在表中找到sku – tempteh

回答

0

我沒有找到任何合適的SELECT查詢會從表中發現只有一個結果,但有一種變通方法

在我的桌子的產品每款產品都有一個子類(sub_cat),這是CPU,硬盤等 上來所以我已經爲每個產品命名了分割表,例如hdd_specs,cpu_specs等等。

所以我將sub_cat作爲一個變量存儲,然後從表中選擇一切從表中調用像我的變量,它工作順利。

 $query = "SELECT sub_cat FROM products WHERE SKU = $productSKU"; 

     $select = mysql_query($query); 

     $result_1 = mysql_fetch_assoc($select); 

     $sub_cat = $result_1['sub_cat']; 

     $sub_cat = $sub_cat.'_specs'; 




     $get = " SELECT * FROM $sub_cat 
       WHERE SKU = $productSKU 
       "; 
0

試試這個:

SELECT p.id, p.prod_name, p.SKU, IFNULL(cs.prod_desc, hs.prod_desc) 
FROM products AS p 
LEFT JOIN cpu_specs AS cs ON cs.SKU = p.SKU 
LEFT JOIN hdd_specs AS hs ON hs.SKU = p.SKU 
WHERE p.SKU = $productSKU