【发布时间】:2020-10-30 19:01:02
【问题描述】:
我遇到了分页问题,在尝试了几个小时后,最后的手段是 stackoverflow!查询结果显示产品列表,但结果全部显示在 1 页上,并且无法正确反映分页。我不确定我在哪里出错了。
<?php
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}
$no_of_records_per_page = 2;
$offset = ($pageno-1) * $no_of_records_per_page;
$conn=mysqli_connect("localhost",".....","....",".....");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
$total_pages_sql = "SELECT COUNT(*) FROM tbl_product";
$result = mysqli_query($conn,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
$total_pages = ceil($total_rows / $no_of_records_per_page);
$sql = "SELECT * FROM tbl_product LIMIT $offset, $no_of_records_per_page";
$res_data = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($res_data)){
$product_array = $shoppingCart->getAllProduct($query);
if (! empty($product_array)) {
foreach ($product_array as $key => $value) {
?>
<div class="product-item">
<form method="post"
action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>">
<div class="product-image">
<img src="<?php echo $product_array[$key]["image"]; ?>">
<div class="product-title">
<?php echo $product_array[$key]["name"]; ?>
</div>
</div>
<div class="product-footer">
<div class="float-right">
<input type="text" name="quantity" value="1"
size="2" class="input-cart-quantity" />
<input type="image"
src="image/add-to-cart.png" class="btnAddAction" />
</div>
<div class="product-price float-left">
<?php echo "£".$product_array[$key]["price"]; ?>
</div>
</div>
</form>
</div>
<?php
}
}
?>
<?php
}
mysqli_close($conn);
?>
<ul class="pagination">
<li><a href="?pageno=1">First</a></li>
<li class="<?php if($pageno <= 1){ echo 'disabled'; } ?>">
<a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
</li>
<li class="<?php if($pageno >= $total_pages){ echo 'disabled'; } ?>">
<a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
</li>
<li><a href="?pageno=<?php echo $total_pages; ?>">Last</a></li>
</ul>
【问题讨论】:
-
while循环中到底发生了什么?您设置分页查询的方式是正确的。但是您似乎没有从该查询的结果中构建 html。您基于购物车中的产品进行构建。它从何而来?它包含什么?这个页面的目的是什么?
标签: php html mysql pagination