我有类别表。表3中的一个项目可能有多个类别。三个表格如下:
表1:
ID Item_id
1 1
2 2
3 3
4 4
5 5
表2:
ID Item_id Category
1 1 cat1
2 2 cat1
3 2 cat2
4 3 cat2
5 3 cat3
6 3 cat4
7 4 cat2
8 5 cat1
etc.
第三个表只有类别名称的信息:
表3:
Category_id category_name
cat1 apples
cat2 oranges
cat3 bananas
cat4 pineapples
我做了一个查询来获取所有项目的PDO对象,并且能够回显php中每个项目的所有类别。
首先查询:
public function getCategories(){
$this->db->query('SELECT table1.*, table2.*, table3.*
FROM table1
INNER JOIN table2
ON table1.item_id = table2.item_id
INNER JOIN table3
ON table2.category=table3.category_id');
$results = $this->db->resultset();
return $results;}
$items = $offer_class -> getCategories();
如何获取foreach循环中每个项目的所有类别名称,如下所示:
echo:Item1:apples
回声:第2项:苹果,橙子 回声:第3项:橙子,香蕉,菠萝我已尝试过这个foreach循环,但它只为每个项目提供了第一个类别名称:
<?php foreach($items as $item){
echo $item->category_name;
}
?>
答案 0 :(得分:0)
JOIN会连续返回单个记录,因此结果看起来或多或少如下:
.scrollable-panel{
height:300px;
overflow-y:scroll;
width:100%;
}
您必须按1, cat1, apples
2, cat1, apples
2, cat2, oranges
3, cat2, oranges
3, cat3, bananas
3, cat4, pineapples
对记录进行分组,并立即打印所有类别名称(这将是伪伪代码,因为我不知道php和我&#39 ; m从其他几个答案复制粘贴):
Item_id