在SO上搜索以快速解决此问题。我试图在5个项目之后创建一个循环中断。 PHP不是我最强的主题,开发人员没有留下任何评论。
代码应输出此块,然后循环。因此,第一个LI有一个循环,然后是其中5个项目的块循环。我无法理解。
<li class="royalSlide">
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
<a href=""><img src="" /></a>
</li>
到目前为止我编辑的代码,我添加了整数。
$i=5;
while($row = mysql_fetch_array($result))
{
$pid=$row["stock_products_code"];
$dir = "assets/sale/".$pid."/";$dh = opendir($dir);
echo '<li class="royalSlide">';
while (($file = readdir($dh)) !== false)
{
$vpxd=$file;
if($vpxd=="." || $vpxd=="..")
{
}else{
$vpxd=str_replace(".jpg","", $vpxd);
echo '<a href="/product-sale.php?prodref='.$vpxd.'" target="_top"><img src="/assets/sale/'.$pid.'/'.$file.'" border="0" /></a>';
$i++;
}
}
echo '</li>';
closedir($dh);
}
答案 0 :(得分:1)
您在搜索break statement吗?
while($row = mysql_fetch_array($result))
{
$i = 0;
$pid = $row["stock_products_code"];
$dir = "assets/sale/$pid/";
$dh = opendir($dir);
echo '<li class="royalSlide">';
while (($file = readdir($dh)) !== false)
{
$vpxd = $file;
if($vpxd != "." && $vpxd != ".." )
{
$vpxd=str_replace(".jpg","", $vpxd);
echo '<a href="/product-sale.php?prodref=$vpxd" target="_top"><img src="/assets/sale/$pid/$file" border="0" /></a>';
$i++;
}
if ($i == 5)
{
break; // leave the inner while loop
}
}
echo '</li>';
closedir($dh);
}
答案 1 :(得分:0)
摆脱这个:
$i = 5;
在每个内循环之前将$i
设置为零:
while($row = mysql_fetch_array($result))
{
$i = 0;
如果$i
命中5:
echo '<a href="/product-sale.php?prodref='.$vpxd. ...
if (++$i == 5) {
break;
}
答案 2 :(得分:0)
如果我正确阅读,你想要多个<ul>
,每个<li>
最多只有$i = 0;
while(...) {
if (($i % 5) == 0) {
echo '<ul>';
}
.... stuff ...
if ((($i + 1) % 5) == 0) {
echo '</ul>';
}
$i++;
}
个?
<li>
第一个if()将在$ i计数器上达到'5'的倍数时打开一个新列表。因此,对于i = 0,您将获得UL。然后它只输出单个</ul>
元素并递增$ i直到它达到4.此时你输出5个li元素,它现在输出{{1}}来关闭列表。