感谢您阅读本文的时机。让我解释一下我的要求
实际上根据数据库中的IMAGENUM字段值,我需要相应地显示图像的数量。我更新的代码如下
while( $row = $result->fetch_assoc() ) {
$NUM=intval($row["IMAGENUM"]);
$imagesArr=array();
//dynamically fill the imagesArr
for($i=0; $i < $NUM ; $i++){
$currKey = "IMG".($i+1);
if(!empty($row[$currKey])){
array_push($imagesArr,$row[$currKey]);
}
}
$NAME= $row["NAME"];
$QNTY=$row["QNTY"];
$PRICE= $row["PRICE"];
$DESC=$row["DESC"];
$ADDDESC= $row["ADDDESC"];
$IFLAG=$row["IFLAG"];
$SFLAG= $row["SFLAG"];
$CFLAG=$row["CFLAG"];
$IMG1= $row["IMG1"];
$IMG2=$row["IMG2"];
$IMG3= $row["IMG3"];
for($i = 0; $i < $NUM; $i++) {
echo $imagesArr[$i];
echo '
<div class="single_grid">
<div class="grid images_3_of_2">
<ul id="etalage">
<li>
<a href="optionallink.html">
<img class="etalage_thumb_image" src="', $imagesArr[$i], '" class="img-responsive" />
<img class="etalage_source_image" src="', $imagesArr[$i], '" class="img-responsive" title="" />
</a>
</li>
<li>
<a href="optionallink.html">
<img class="etalage_thumb_image" src="', $imagesArr[$i], '" class="img-responsive" />
<img class="etalage_source_image" src="', $imagesArr[$i], '" class="img-responsive" title="" />
</a>
</li>
<ul>
</div>
</div>
';
}
}
当我回显$ imagesArr [$ i]时,我可以看到所有的值,但只有当我有两个列表标签时,图像才会被更改 请建议。感谢
答案 0 :(得分:1)
您可以将所有图像推送到数组中,然后迭代此数组。
while ($row = mysql_fetch_assoc($result)) {
$NUM=intval($row["IMAGENUM"]);
$imagesArr=array();
//dynamically fill the imagesArr
for($i=0; $i < $NUM ; $i++){
$currKey = "IMG".($i+1);
if(!empty($row[$currKey])){
array_push($imagesArr,$row[$currKey]);
}
}
$NAME= $row["NAME"];
$QNTY=$row["QNTY"];
$PRICE= $row["PRICE"];
$DESC=$row["DESC"];
$ADDDESC= $row["ADDDESC"];
$IFLAG=$row["IFLAG"];
$SFLAG= $row["SFLAG"];
$CFLAG=$row["CFLAG"];
for($i = 0; $i < $NUM; $i++) {
echo '
<div class="single_grid">
<div class="grid images_3_of_2">
<ul id="etalage">
<li>
<a href="optionallink.html">
<img class="etalage_thumb_image" src="', $imagesArr[$i], '" class="img-responsive" />
<img class="etalage_source_image" src="', $imagesArr[$i], '" class="img-responsive" title="" />
</a>
</li>
<ul>
</div>
</div>
';
}
注意:请考虑使用PDO / mysqli,而不是使用已弃用的mysql_fetch_assoc(),例如:
$connection = new mysqli($host,$user,$pass,$db);
$result = $connection->query("SELECT * FROM `Blogs`");
while( $row = $result->fetch_assoc() ) {
//do your stuff here for each row
}
此外,您的桌面结构并不理想。最好将图像链接分别存储在一个带有产品外键的表中。然后,您可以轻松获取产品的所有图像,而无需动态填充图像阵列。