PHP:foreach中的glob与每一行相乘?

标签 php mysql

这有点令人困惑且难以解释,但我会尽力解释它。

基本上,我有一个图像目录 (test),其中包含我的产品的所有图像。

图像如下所示:

999999999Image1.jpg
999999999Image2.jpg
999999999Image3.jpg
999999999Image4.jpg
999999999Image5.jpg

555555555Image6.jpg
555555555Image7.jpg
555555555Image8.jpg
555555555Image9.jpg
555555555Image10.jpg

etc etc...

Image前面的数字是MYSQL数据库中名为STOCK的字段。

现在,我尝试使用 glob() 来显示 mysql 数据库中每个项目的图像,如下所示:

while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){

    $STOCK = $row['STOCK'];

    foreach(glob('test/'.$STOCK.'*') as $image) {   

        if($image != ""){
            $pic_list2 .= '<img data-src="'.$image.'" class="smallImg" width="57" height="43" data-id="'.$STOCK.'" data-details="'.$ADVERT_DESCRIPTION_main.'" data-name="'.$MAKE2.' '.$MODEL2.' '.$DERIVATIVE2.'" data-price="'.$PRICE2.'" src="'.$image.'" alt="" />';

        }
        else{
            $pic_list2 = ''; 
        } 
    }

    /////rest of my code..../////

}

但是,当我运行代码时,我得到一个非常奇怪的输出......

我遇到的问题是,每次输出 MYSQL 结果时,glob() 找到的图像也会添加到下一个结果中!因此,就像第一个结果的图像被添加到下一个结果,然后第一个结果和第二个结果的图像被添加到第三个结果,依此类推......

我希望这是有道理的,有人可以给我指出正确的方向。

如有任何帮助,我们将不胜感激。

最佳答案

我建议:

while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){

    $STOCK = $row['STOCK'];

    $pic_list2 = ''; // you need this line also here !! only change

    foreach(glob('test/'.$STOCK.'*') as $image) {   

        if($image != ""){
            $pic_list2 .= '<img data-src="'.$image.'" class="smallImg" width="57" height="43" data-id="'.$STOCK.'" data-details="'.$ADVERT_DESCRIPTION_main.'" data-name="'.$MAKE2.' '.$MODEL2.' '.$DERIVATIVE2.'" data-price="'.$PRICE2.'" src="'.$image.'" alt="" />';

        }
        else{
            $pic_list2 = ''; 
        } 
    }

    /////rest of my code..../////

}

关于PHP:foreach中的glob与每一行相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687114/

相关文章:

python - Django Python - 如何在一个 HTML 模板中显示来自不同表格的信息

mysql - 如果最新行已超过 2 周,则返回数据

php - 如何向php中的所有用户发送电子邮件?

php - 替换 CSS 中的 css 值的正则表达式

php - 替换表格中的换行符

mysql - 数据库中可能有 "folders"吗?

php - 默认内容放在哪里?代码还是数据库?

php - 通过 PHP 插入 MYSQL 时的 UNIX 时间戳问题

Mysql 连接、求和、具有、分组依据。想不通

php - 我想检查如何通过排除空格、数字和符号来避免重复标题?