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