如何将数据库中的数据分为几类

时间:2019-06-01 11:43:51

标签: php mysql

我需要根据类别从数据库中过滤产品。当用户单击类别2时,我需要显示属于类别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