2014-01-30 89 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