如何在php中显示组_CONCAT值
我已经试过了,但它一直只显示每篇文章的第一张图片,我不知道如何为一篇文章显示多张图片如何在php中显示组_CONCAT值,php,sql,pdo,Php,Sql,Pdo,我已经试过了,但它一直只显示每篇文章的第一张图片,我不知道如何为一篇文章显示多张图片 $result = $db->prepare("SELECT article.titreArticle, article.textArticle, article.idArticle, article.dateArticle, GROUP_CONCAT(images.images) AS IMG FROM article LEFT JOIN images ON articl
$result = $db->prepare("SELECT article.titreArticle, article.textArticle,
article.idArticle, article.dateArticle, GROUP_CONCAT(images.images) AS IMG
FROM article LEFT JOIN images
ON article.idArticle = images.idArticle
GROUP BY article.idArticle");
for ($i = 0;
$row = $result->fetch();
$i++){
?>
<h1 style="text-align: center"><?php echo $row['idArticle']; ?></h1>
<hr>
<img style="width: 300px" src="images/<?php if($row ['IMG'] !=null ) {
$value = $row['IMG'];
}
$values = explode(",", $value);
echo $values[0];
?>">
$result=$db->prepare(“选择article.titreArticle,article.textticle,
article.idArticle、article.dateArticle、GROUP_CONCAT(images.images)作为IMG
从文章左侧连接图像
关于article.idArticle=images.idArticle
按条款分组(i条款);
对于($i=0;
$row=$result->fetch();
$i++){
?>
">
GROUP_CONCAT的目的是返回每个组中的每个值,并将其连接到同一字段中
对于某些组,您希望有多个图像,但是您只显示一个图像,第一个遇到:echo$values[0];
如果要显示组中的所有图像,必须在图像数组上进行第二个循环,以打印每个元素
所以,在行上有主循环,在图像上有第二个循环
试试这个:
<?php
$result = $db->prepare("SELECT article.titreArticle, article.textArticle,
article.idArticle, article.dateArticle, GROUP_CONCAT(images.images) AS IMG
FROM article LEFT JOIN images
ON article.idArticle = images.idArticle
GROUP BY article.idArticle");
// FIRST LOOP ON ROWS
for ($i = 0; $row = $result->fetch(); $i++){
?>
<h1 style="text-align: center"><?php echo $row['idArticle']; ?></h1>
<hr>
<?php
$images = ""; // we will store all our images for this row here (if any)
if($row ['IMG'] !=null ) {
$value = $row['IMG'];
$values = explode(",", $value);
// SECOND LOOP ON IMAGES
foreach($values, $imgsrc){
$images .= '<img style="width: 300px" src="images/'.$imgsrc.'">';
}
echo $images; // output all images
}
?>
GROUP_CONCAT的目的是返回每个组中的每个值,并将其连接到同一字段中
对于某些组,您希望有多个图像,但是您只显示一个图像,第一个遇到:echo$values[0];
如果要显示组中的所有图像,必须在图像数组上进行第二个循环,以打印每个元素
所以,在行上有主循环,在图像上有第二个循环
试试这个:
<?php
$result = $db->prepare("SELECT article.titreArticle, article.textArticle,
article.idArticle, article.dateArticle, GROUP_CONCAT(images.images) AS IMG
FROM article LEFT JOIN images
ON article.idArticle = images.idArticle
GROUP BY article.idArticle");
// FIRST LOOP ON ROWS
for ($i = 0; $row = $result->fetch(); $i++){
?>
<h1 style="text-align: center"><?php echo $row['idArticle']; ?></h1>
<hr>
<?php
$images = ""; // we will store all our images for this row here (if any)
if($row ['IMG'] !=null ) {
$value = $row['IMG'];
$values = explode(",", $value);
// SECOND LOOP ON IMAGES
foreach($values, $imgsrc){
$images .= '<img style="width: 300px" src="images/'.$imgsrc.'">';
}
echo $images; // output all images
}
?>
您的查询在我看来是正确的。您能提供一些示例数据来解释问题吗?好吧,这不应该发生在这里。我在php中获取多个图像时遇到问题,否则我的sql查询工作正常,只有我可以为我的文章获取第一个图像,而每篇文章都有多个图像。我不知道为什么,但它保持不变显示第一张图片您的评论在这里没有任何帮助,因为它只是重复问题,这是不完整的,因为您从未向我们显示任何数据。请显示一些数据并使您的问题重现。我添加了一张图片,您可以看到问题,第31行是这行代码:$values=explode(“,”,$value);您的查询在我看来是正确的。您能提供一些示例数据来解释问题吗?好吧,这里不应该发生这种情况。我在php中获取多个图像时遇到问题,否则我的sql查询工作正常,只有我可以为我的文章获取第一个图像,而每篇文章都有多个图像。我不知道为什么,但它会一直显示在这里,你的评论对第一张图片没有任何帮助,因为它只是重复了问题,这是不完整的,因为你从来没有向我们展示过任何数据。请展示一些数据,让你的问题重现。我添加了一张图片,你可以看到问题,第31行是这行代码:$values=explode(“,”,$value);