【发布时间】:2014-07-31 10:22:21
【问题描述】:
我有 3 个表 - Product、category 和 product_category。
|------ product-------- |
|-Pid
|-Pname
|------ catrgory ----|
|-cat_id
|-cat_name
|------ product_category --------------|
|-product_id
|-category_id
这是我的尝试。
$comp_query=mysql_query("SELECT DISTINCT p.Pname AS product_name, p.Pid AS product_id,
c.cat_name AS category_name, c.cat_id AS category_id
FROM product AS p
JOIN product_category AS pc ON p.Pid = pc.product_id
JOIN category AS c ON c.cat_id = pc.category_id
Order BY category_id");
while($row=mysql_fetch_array($comp_query)){
echo " $row[category_name] -----";
echo " $row[product_name]<br/> ";
}
此查询显示结果为:
Category1 ----- Category1-Product 1
Category1 ----- Category1-Product 2
Category1 ----- Category1-Product 3
Category2 ----- Category2-Product-1
Category2 ----- Category2-Product-2
但我想从每个类别中获取产品,例如:
**|-----Category1-----|**
|-Product-1
|-Product-2
|-Product-3
**|-----Category2-----|**
|-Product-1
|-Product-2
|-Product-3
**|-----Category3-----|**
|-Product-1
|-Product-2
|-Product-3
还有产品名称和其他详细信息。
请帮助我如何通过循环和查询来做到这一点。
【问题讨论】:
-
如果一个产品只能有一个类别,那么只有两个表会容易得多:
Product (Pid, Pname, Pcategory)和Category (cat_id, cat_name)。