PHP 如何获取页面上"showing # of # items"的最后一个项目计数



我正在制作一个产品页面,在我的分页旁边,我想显示每页的项目计数。

所以像"显示 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: &nbsp; <?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>&nbsp; | &nbsp;';
            };
        $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> &nbsp; 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)

最新更新