我正在用 PHP 编写代码来获取数据库中的产品数量,并相应地在页面中列出它们。这是我到目前为止的代码:
<?php
$numProds=10;
if($numProds%9 == 0) {
$numPages = $numProds/9;
} elseif ($numProds%9 != 0) { // true
$numPages = floor($numProds/9) + 1; // $numPages = 2;
}
for ($i = 1; $i < $numPages+1; $i++) {
?>
<li id="page<?php echo $i; ?>">
<?php if($numProds <= 9) {
for ($i = 1; $i < $numProds+1; $i++) { ?>
<div class="product" id="prodId<?php echo $i; ?>">
<div class="productImage"><img class="image" src="images/sampleImg.png" /></div>
<div class="prodInfo">
<h2><a href="#">Red Strawberry Keyring blabla bla bla</a></h2>
<b>Price: $2.50 |</b> <a href="#">Add to cart</a>
</div>
</div>
<?php
}
} else {
$numProds-=9;
for ($i = 1; $i < 10; $i++) { ?>
<div class="product" id="prodId<?php echo $i; ?>">
<div class="productImage"><img class="image" src="images/sampleImg.png" /></div>
<div class="prodInfo">
<h2><a href="#">Red Strawberry Keyring blabla bla bla</a></h2>
<b>Price: $2.50 |</b> <a href="#">Add to cart</a>
</div>
</div>
<?php }
}?>
</li>
<?php } ?>
我将测试值设置为 10,我希望每个页面包含 9 个产品。
这意味着我需要 2 页;一页有 9 个产品,另一页只有 1 个产品。
首先,我计算所需的页面数,并创建页面(AKAli
的)。
其次,在每个页面中,我有两个 if 语句:
1) 如果 numProds 小于或等于 9,则使用循环创建确切数量的产品。
2) 如果 numProds 大于 9(即 10),则创建 9 个产品并从 numProds 中取出 9 个,因此 $numProds 将为 1,这是应该在第二页上创建的唯一产品数。
这段代码的问题是所有页面都包含 9 个产品,而不管 numProds,所以有问题。
我浏览了几次代码,一无所获。
另一个问题是,在每一页中,该<li id="page<?php echo $i; ?>">
部分再次从 0 开始。
我知道这是因为循环,但我的问题是,有没有办法以某种方式从前一个循环继续$i
?