PHP和MySql,加入三个表并阅读

时间:2015-03-24 16:51:09

标签: php mysql

我有3个数据库表,productscategoriesassignment

所有三个表都有唯一的ID。

第三个表assignment,将产品ID与类别ID相关联。一个例子:

products:
---------------------
| name        | id  |
---------------------
| white shirt | 234 |
| black pants | 0u2 |

categories:
---------------------
| name       | id   |
---------------------
| shirts     | x23  |
| pants      | 28x  |

assignment:
------------------------
| catId | itemId | id  |
------------------------
| x23   | 234    | 892 |
| 28x   | 0u2    | 561 |

我想创建一个列表。一个例子:

<items>
<cats>shirts</cats>
<item>white shirt</item>
<cats>pants</cats>
<item>black pants</item>
</items>

重要的是,第一个类别名称和产品列在类别中。

SQL:

select assignment.itemId, assignment.catId from assignment 
    left join categories 
        on categories.id = assignment.catId 
where categories.active = '1'

我的SQL查询正常。问题是在while循环中一起正确提供列表。

PHP while循环:

            if ($res != false && $res->count() > 0) {
                $i = 0;
                $html = '<items>';
                while (!$res->EOF) {
                    $categories = $res->fields[1];
                    $html .= '<cats>'.$categories->title.'</cats>';
                    $products = $res->fields[0];
                    $html .= '<item>'.$products->title.'</item>';
                    $i++;
                 }
                $html .= '</items>';
              }

在while循环中,我可以读取产品字段[0]和类别字段[1],但我无法按照自己的意愿制作列表。

我的结果如下:

衬衫

白衬衫
黑色裤子

你有什么解决方案吗?

谢谢你!

0 个答案:

没有答案