これは少し混乱して説明するのは難しいですが、私はそれを説明するために最善を尽くします。PHP:foreachのglobは各行に乗算されますか?
基本的には、自分の製品のすべての画像を保持する画像ディレクトリ(test
)があります。画像はSTOCK
と呼ばれるMySQLデータベースのフィールドである前に
999999999Image1.jpg
999999999Image2.jpg
999999999Image3.jpg
999999999Image4.jpg
999999999Image5.jpg
555555555Image6.jpg
555555555Image7.jpg
555555555Image8.jpg
555555555Image9.jpg
555555555Image10.jpg
etc etc...
番号:
画像はこのように見えます。
今、私はそうのようにmysqlデータベース内の各項目の画像を表示する3210を使用しようとしている:私は自分のコードを実行したときに
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()によって見つかったイメージが次の結果にも追加されていることです!その結果、最初の結果の画像が次の結果に追加され、最初の結果と2番目の結果の画像が3番目の結果に追加されます。
これが欲しいです誰かが正しい方向に向けることができます。
ご協力いただければ幸いです。
は、私はできない、whileループ – Mihai
@Mihai外にあなたのforeachのを入れてください。変数$ STOCKはwhileループ内にあり、それは各製品に関連する画像を見つけるために使用する画像名の一部です。 – Jackson
... glob( 'test/1 *') 'もglob( 'test/11 *')'と同じ画像を見つけられません。 '$ STOCK'が数字で区切り記号がない場合、これは一つの可能な説明のようです。 –