【问题标题】:How to get the number of items on page with this pagination code?如何使用此分页码获取页面上的项目数?
【发布时间】:2019-05-18 02:24:57
【问题描述】:

我在 PHP 中使用 MySQL 构建了一个成功的寻呼机,效果非常好。我的问题更像是一个数学问题。我不会用所有代码来让你感到麻烦,以保持它的简短和干净。我只是发布要点供您理解。

我正在尝试显示每页的结果数:

    $row_count = total rows from database
    $items_per_page = whatever number inserted here creates the total number of pages.

    Showing results '.$items_per_page*$page.'/'.$row_count.'

上面的数学没有任何意义。如果我有 72 行表格,每页显示 50 个项目,这给了我 2 页。第一页将有 50 个项目,第二页将有 22 个项目。问题出在第二页上,它将显示:Showing results 100/72。在第二页上,用户应该看到Showing results 72/72

完成这项工作的数学/算法是什么?我敢肯定这真的很傻,但我想不通。

【问题讨论】:

    标签: php mysql math pagination


    【解决方案1】:

    您只想计算整个页面,因此:

    $displayed_items = ($row_count - $items_per_page*($page - 1)) > $items_per_page ? $items_per_page*$page : $row_count;
    echo "Display results " . $displayed_items . "/" . $row_count;
    

    有效地:

    计算剩余的项目数,包括您正在显示的项目(因此 $page - 1 )。 Pg 1 这将是 72 - 0 = 72。Pg2 这将是 72 - 50 = 22;

    如果剩余数量高于每页上显示的数量,那么您只需在页面 # * 每页上显示项目。对于 pg 1,72 > 50,所以显示 50 * 1 = 50。

    如果剩余数量低于每页显示的数量,您将显示最后一行(总行数)。对于第 2 页,22

    编辑:因为你不想使用你的三元内联。您也可以将其拆分为 if/else 语句

    if( $row_count - $items_per_page * ($page - 1) > $items_per_page ) {
       echo "Showing results " . $items_per_page * $page . "/" . $row_count;
    } else {
       echo "Showing results " . $row_count . "/" . $row_count;
    }
    

    【讨论】:

    • 是的。使用三元内联给了我一个解析语法错误。您的编辑有效,这是正确的答案!
    • 我添加了关于如何使用三元的附加编辑。
    【解决方案2】:

    它会正确显示,直到最后一页很短,所以不正确。

    我会做一个 if 语句,然后在最后一页相应地减少

    如果你可以分享更多代码,我可以编写代码来做到这一点

    【讨论】:

      猜你喜欢
      • 2014-12-29
      • 2012-02-07
      • 1970-01-01
      • 2013-10-08
      • 2013-01-14
      • 1970-01-01
      • 2019-08-28
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多