我有一个products
表,如下所示:
id di_make di_model
1 Samsung TV656
2 Samsung TV555
3 Sony LCD33
我有一个makes
表,看起来像这个(这是我用作类别表的表):
id names
1 Samsung
2 Samsung
3 Sony
我需要创建这样的输出,因此当点击类别/制作时,下拉列表会将di_model(s)
或Subcategories
表格显示为子类别:
http://jsfiddle.net/7NYhe/500/
我尝试了这个查询:
products
但这会创造这个:
http://jsfiddle.net/7NYhe/502/
基本上,它为每个子类别创建一个类别!
有人可以就此问题提出建议吗?
这是我的代码的一个有效的SQL错误:
答案 0 :(得分:4)
您可以使用此查询
SELECT products.di_make, GROUP_CONCAT(products.di_model) as di_model
FROM products LEFT JOIN makes ON products.di_make=makes.names
GROUP BY products.di_make
你将使用它来获取这样的数据
di_make di_model
Samsung TV656,TV555
Sony LCD33
如果某个类别包含多个产品,您将获得di_model
字符串。现在您可以将该字符串分解。
$subcategories = explode(",",$make_model)
'<li class="dropdown">'.$make_names.'
<ul>';
foreach($subcategories as $sub){
'<li>'.$sub.'</li>';
}
'</ul>
</li>';
你可以像你一样实现你的PHP。
答案 1 :(得分:1)
尝试此查询 -
SELECT products.di_make, MAX(products.di_model)
FROM products
JOIN makes ON products.di_make=makes.names
GROUP BY products.di_make