如何使用开始索引,每页项目,总项目和总页数获取当前页面?(PHP)

Mik*_*son 2 php pagination paginate

例如,让我们说:

$startIndex = 21; 
$totalItems = 100;
$itemsPerPage = 10;
$totalPages = ceil($totalItems / $itemsPerPage);  // (10)

$currentpage = //I am stumped here.
Run Code Online (Sandbox Code Playgroud)

$ currentpage是什么,基于$ startIndex?

我正在进行分页,它正在踢我的屁股.我知道这可能是一些非常简单的数学,但我现在想不到.

Veg*_*ger 9

每页10个项目,第1页包含项目1到10,第2页包含项目11到20,第3页包含21到30,依此类推.

所以,

$currentPage = ceil($startIndex / $itemsPerPage);
Run Code Online (Sandbox Code Playgroud)

我曾经ceil()确保你有一个整数,它被四舍五入,所以当前的页码是正确的.

  • 我不相信这个答案是正确的。考虑一组 14 条记录,每页限制 7 条。如果 startIndex = 7,则页面应为 2,但 ceil(7/7) = 1。如果有 100 条记录,限制为 10,startIndex 为 50,则页面应为 6,但 50/10 = 5。答案Sammitch 的结果是正确的 ((startIndex-1)/itemsPerPage) + 1,对于这两个示例,给出 ceil(((7-1)/14)+1) = 2 和 ceil((50-1/10) +1) = 6。另一个考虑因素是 startIndex 为 0,您必须单独处理它。 (2认同)

Sam*_*tch 7

你在数学课上睡了很多,不是吗?

$currentpage = (($startIndex - 1) / $itemsPerPage) + 1;
Run Code Online (Sandbox Code Playgroud)

  • 睡眠+1 ......现在可以使用其中一些.但是,在那里需要一个地板/天花板来整理页码.不知道有太多书籍(或网站)有"第2.35612页" (4认同)