php - 如何使用此分页代码获取页面上的项目数?

标签 php mysql math pagination

我用 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

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

最佳答案

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

$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;

如果剩余数量高于每页显示的数量,则每页只有第 # * 个项目。对于第 1 页,72 > 50,所以显示 50 * 1 = 50。

如果剩余数量低于每页显示的数量,则您显示的是最后一行(总行数)。对于第 2 页,22 < 50 所以显示 72(总数)。

编辑:因为你不想使用你的三元内联。您也可以将其拆分为 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;
}

关于php - 如何使用此分页代码获取页面上的项目数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56191294/

相关文章:

MYSQL:将自动增量值插入多个列

精确比较非常大整数(十亿级)的两个指数的算法

php - 无法在 php 中连接表和获取数组

php - 如何将实际的 NULL 值插入到可为空的列中?

mysql - SQL IN 子句仅提供开始和结束数字

java - 如何在 Java 中有效生成完美的数字到数字不变数?

c++ - PLU 分解的矩阵逆

php - 限制保存到其他表的数据数量

php - 准备好的陈述正字法

php - 我如何在 SELECT ... INTO OUTFILE 'result.csv' 后保存文件