我想将两个表的内容显示为一个,一个表包含产品详细信息,另一个表包含一个图像或产品详细信息,对于单个产品,我上传的图像比图像更多。我想显示它,如果一个产品有3张图像,则3张图像应与产品详细信息显示在同一行。 我该怎么办?
表1
id pname prodes cat sucat
76 bsb sbfb fbfb fdbfdb
77 gripperr black slim 7 pen ball pen
78 technotip black slim 7 pen ball pen
79 gripperr blue ink rtnrtn ball pen
80 gripperr blue ink rtnrtn ball pen
82 vfdv fdb fdbdf bdfbdfb
表2
id pid image
4 76 1.jpg
5 76 2.jpg
6 76 3.jpg
7 77 a.jpg
8 77 b.jpg
9 77 c.jpg
10 78 img_20171004_064140-1547183108.jpg
11 78 img_20171008_110354-1547183108.jpg
12 78 v-1547183108.jpg
13 79 aegi-1547183474.jpg
14 79 b-1547183474.jpg
15 79 c-1547183474.jpg
16 80 aegi-1547183595.jpg
17 80 b-1547183595.jpg
18 80 c-1547183595.jpg
20 82 yg-1547186213.jpg
21 82 yoongi-1547186213.jpg
我想要它
id pname prodes cat sucat
76 bsb sbfb fbfb fdbfdb 1.jpg 2.jpg 3.jpg
77 gripperr black slim 7 pen ball pen a.jpg b.pjp c.jpg
78 technotip black slim 7 pen ball pen
79 gripperr blue ink rtnrtn ball pen
80 gripperr blue ink rtnrtn ball pen
82 vfdv fdb fdbdf bdfbdfb
答案 0 :(得分:1)
您不能创建不同数量的列,但是可以使用mysql函数group_concat连接所有用逗号分隔的图像
select t1.*, group_concat(t2.image) as images
from table1 as t1
left join table2 as t2 on t1.id=t2.pid
回答评论
您还需要一个循环,就像
foreach(explode(',', $row['image'] as $url) {
$imageURL = 'pictures/'.$url;
echo '<img src="<?php echo $imageURL; ?>" alt="" width="100" height="100" />'
}
答案 1 :(得分:1)
=>试试这个:-
使用左连接从左表获取所有数据,并从右表获取匹配的记录。
$sql= "select P1.*, group_concat(I2.image) images
from product P1
left join images I2 on P1.id=I2.pid";