只有当我有两个<li>标签时才会更改图片

时间:2016-02-05 08:34:35

标签: javascript php html mysql e-commerce

感谢您阅读本文的时机。让我解释一下我的要求

实际上根据数据库中的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]时,我可以看到所有的值,但只有当我有两个列表标签时,图像才会被更改 请建议。感谢

1 个答案:

答案 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
}

此外,您的桌面结构并不理想。最好将图像链接分别存储在一个带有产品外键的表中。然后,您可以轻松获取产品的所有图像,而无需动态填充图像阵列。