我正在制作一个产品页面,在我的分页旁边,我想显示每页的项目计数。
所以像"显示 1 - 10 个产品"这样的东西。
我想出了如何计算第一个项目编号,但我坚持找出页面上的最后 # 个项目。
因此,假设我每页有 10 个项目,总共 35 个项目,第一页将显示"1 - 10",下一页将显示"11 - 20",下一个"21 - 30",最后一页将显示"31 - 35"。
<?php
//connect to the database
include_once ('includes/connect_to_mysql.php');
$category = urldecode ($_GET["cat"]); // get category for the current page from the URL
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 10;
$startpoint = ($page * $limit) - $limit;
$statement = "products WHERE active = 1 AND category = '$category'";
?>
<header>
<div class="paging">
Page: <?php
$sql = "SELECT * FROM products WHERE active = 1 AND category = '$category'";
$rs_result = mysql_query($sql); //run the query
$total_records = mysql_num_rows($rs_result); //count number of records
$num_rec_per_page = 10; //number of records per page
$total_pages = ceil($total_records / $num_rec_per_page);
for ($i=1; $i<=$total_pages; $i++) {
echo '<a href="categories.php?cat='.urlencode($category).'&page='.$i.'">'.$i.'</a> | ';
};
$first = ($page * $limit) - $limit +1;
$last = 'NOT SURE WHAT TO PUT HERE';
?>
</div>
<form action="#" >
<select onchange="javascript:addSort();" name="sortBy" id="sortBy">
<option value="">Default</option>
<option value="PriceHiLo">Price (High to Low)</option>
<option value="PriceLoHi">Price (Low to High)</option>
<option value="pID">Most Recent</option>
</select> Showing <?php echo $first?> - <?php echo $last?> of <?php echo $total_records?> Product(s)
</form>
</header>
任何帮助弄清楚如何计算上述代码中的$last将不胜感激。谢谢。
我找到了解决方案,需要一个 if 语句:
if ($total_records > ($page * $limit)){
$last = ($page * $limit);
} else {
$last = $total_records;
};
Without if case
floor(total / perPageSize) + (total % perPageSize)