1
我有類別表。表3中的一個項目可能有多個類別。如下三個表:在PHP foreach循環中echo SQL PDO對象
表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循環,象下面這樣:
回聲:項目1:蘋果
回聲:項目2:蘋果,桔子
回聲:第3項:桔子,香蕉,菠蘿
我已經試過這foreach循環,但它給我的只有第一個類別名稱爲每個項目:
<?php foreach($items as $item){
echo $item->category_name;
}
?>
棘手的一個問題是,在那些表中可能需要重命名dublicate列名稱 – SuperDJ
@JakubDąbek,所以您建議更改sql查詢以擺脫JOIN?這段代碼有點令人困惑... Aledziękujęza pomoc;) – gileneusz
@gileneusz我不知道是否有與使用JOIN不同的方法,所以我試圖以某種方式解決它的侷限性。可能有一些SQL功能可用於以不同方式進行 –