Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中显示组_CONCAT值_Php_Sql_Pdo - Fatal编程技术网

如何在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);