鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ 當(dāng) join 進(jìn)來的數(shù)據(jù)也是多個以上,如何顯示?

當(dāng) join 進(jìn)來的數(shù)據(jù)也是多個以上,如何顯示?

SELECT
          t.name AS tname
        FROM `product` as p
        JOIN
          `product_theme` as pt ON pt.prod_id = p.prod_id
        JOIN
          `theme` as t ON t.theme_id = pt.theme_id

theme
clipboard.png

product_theme
clipboard.png

也就是說當(dāng) product 有幾個 theme 時
在 product_theme 的 prod_id 就會有幾筆(如圖)
現(xiàn)在有個問題是
因為我要顯示的 tname 是多筆的
但是這樣導(dǎo)致我沒辦法顯示多筆
我直接透過 while ($row...mysqli_fetch_array) $row['tname'] 顯示只會有一筆(prod_id 41的會有兩筆 theme)

clipboard.png

這樣我該怎麼顯示和改寫才對?

回答
編輯回答
萌小萌

根據(jù)你的需求,可以用group_concat函數(shù),按prod_id分組顯示,SQL類似如下:

select proid_id,group_concat(t.name SEPARATOR ';') as tname from product as p ..... 結(jié)尾用 group by prod_id

這樣出來的結(jié)果類似:

proid_id      tname
...
40            小松菜奈的世界
41            夏天最好暖暖包;小松菜奈的世界
...

這樣程序中$orw['tname']獲取的就是"夏天最好暖暖包;小松菜奈的世界",可以用explode函數(shù)分割為數(shù)組使用。

2017年8月5日 13:10