我正在尝试建立自己的网上商店。
我有两个表 - 产品和类别。结构是这样的:
categories :
id name parent_id
products :
id title category_id
当用户点击主要类别时,我正在选择要显示的产品:
url : www.mypage.com/?category_id=1
sql : 'SELECT * FROM products WHERE category_id = 1'
问题是我想在用户单击主类别时选择它的子类别中的所有产品。例如,类别 Family
是类别 Cars
的子类别,在数据库中看起来像这样
categories :
id name parent_id
1 'Cars' 0
2 'Family' 1
3 'Sport' 1
products :
id title category_id
1 'Ferrari' 3
2 'Honda' 2
如您所见,我当前的选择不会选择 Ferrari
或 Honda
,因为用户正在查看 id=1
的类别。 .
如何修改我的选择,以便显示主类别的子类别中的所有产品?
最佳答案
"SELECT * FROM products WHERE category_id = '$your_category_id'
OR category_id IN (
SELECT parent_id FROM categories
WHERE id = '$your_category_id'
)"
注意:此示例仅针对两层深度。
例如
Ferrari > Cars
它不超过两个级别。
例如
Ferrari Child Category > Ferrari > Cars
关于php - 选择类别的所有项目及其子类别中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27504666/