我需要根据类别从数据库中过滤产品。当用户单击类别2时,我需要显示属于类别2的所有产品。
我已经尝试了一切
答案 0 :(得分:0)
理想情况下,您将具有一个products表,一个category表以及一个将两者链接的表(这将在category和product之间创建“很多”关系)
product
表将包含类似
| product_id | product_title | product_price | product_description |
| 23 | Cool shirt | 200 | A very stylish shirt |
category
表将包含类似
| category_id | category_title |
| 1 | My Awesome category |
| 2 | My Other category |
链接或“很多”表,我们可以将其命名为product_category_link
| product_id | category_id |
| 23 | 1 |
| 23 | 2 |
具有以上示例; ID为23的产品现在属于两个类别。
然后我们可以使用以下查询来获取属于特定类别的所有产品,例如,如果我们要获取属于ID为2的类别的产品
SELECT *
FROM product_category_link pcl
INNER JOIN product p ON p.product_id = pcl.product_id
WHERE pcl.category_id = 2
答案 1 :(得分:0)
如果您有一个以上的ID,请使用此
SELECT * FROM products WHERE category IN ($cat_ids)
对于单个ID,请使用此
SELECT * FROM products WHERE category=$cat_id
如果需要加入
SELECT * FROM products p INNER JOIN categories c ON p.p_category_id=c.id WHERE p.category=$cat_id LIMIT 10