这有点混乱,很难解释,但我会尽我所能解释它。PHP:foreach中的glob与每行相乘?
基本上,我有一个图像目录(test
),它包含我的产品的所有图像。
图像看起来是这样的:
999999999Image1.jpg
999999999Image2.jpg
999999999Image3.jpg
999999999Image4.jpg
999999999Image5.jpg
555555555Image6.jpg
555555555Image7.jpg
555555555Image8.jpg
555555555Image9.jpg
555555555Image10.jpg
etc etc...
号码前图片是MYSQL数据库的字段名为STOCK
。现在
,我试图用3210在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()找到的图像也被添加到下一个结果中!所以,它像第一个结果的图像被添加到下一个结果,然后第一个结果的图像和第二个结果被添加到第三个结果等等等等......
我希望这是有道理的,有人可以指引我正确的方向。
任何帮助,将不胜感激。
把你的foreach,while循环外 – Mihai
@Mihai,我不能。变量$ STOCK在while循环内部,这是我用来查找与每个产品相关的图像的图像名称的一部分。 – Jackson
说...只是一个疯狂的想法,但不会'glob('test/1 *')'也找到与glob('test/11 *')'相同的图片?如果'$ STOCK'是数字,并且没有分隔符,那么这似乎是一个可能的解释。 –