这有点令人困惑,难以解释,但我会尽力解释。
基本上,我有一个图像目录(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()找到的图像也被添加到下一个结果中!因此,它就像第一个结果的图像被添加到下一个结果,然后第一个结果的图像和第二个结果被添加到第三个结果,依此类推......
我希望这是有道理的,有人可以指出我正确的方向。
任何帮助都将不胜感激。
答案 0 :(得分:1)
我建议:
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..../////
}
答案 1 :(得分:0)
这个怎么样?这会为每个mysql输出创建一个新的数组键。
<?php
$i = 0;
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$STOCK = $row['STOCK'];
foreach(glob('test/'.$STOCK.'*') as $image) {
if($image != ""){
$pic_list2[$i] .= '<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[$i] = '';
}
}
$i++;
/////rest of my code..../////
}
?>