我正在编写一个我正在编写的Web服务中的分页功能,但是我缺乏数学洞察力现在正在扼杀我.我有一对夫妇键:totalItems,currentItems,currentPage,totalPages,也有几个环节first,last,previous和next.
此时,我正在进行以下计算:
totalItems:表中的行数currentItems:limit来自HTTP请求的参数currentPage:start参数除以limit参数totalPages:表中的行数除以limit.(圆了,8.1页= 9页)我认为这些计算是正确的,我正在努力的是以下内容:
first:HTTP请求中的start参数为1limitlast:应该是最后一页的第一项,我该如何正确计算?previous:应该是上一页的第一项,我该怎么做?next:应该是下一页的第一项,我该怎么做?我想问的是:我的计算是否正确?我如何解决这三个问题last,previous和next?
Dar*_*Bee 18
如果你使用mysql它
LIMIT offset, items_per_page
Run Code Online (Sandbox Code Playgroud)
要计算你可以使用的偏移量
$offset = ($page - 1) * $items_per_page;
Run Code Online (Sandbox Code Playgroud)
然后更换$page相应的.
持续
$last_offset = ($totalPages - 1) * $items_per_page;
Run Code Online (Sandbox Code Playgroud)
以前
$previous_offset = (($currentPage - 1) - 1) * $items_per_page;
Run Code Online (Sandbox Code Playgroud)
下一个
$next_offset = (($currentPage + 1) - 1) * $items_per_page;
Run Code Online (Sandbox Code Playgroud)
编辑:
if ($previous_offset > 0) echo '<a href="?start='.$previous_offset.'&limit='.$items_per_page.'>prev</a>';
if ($next_offset <= $totalPages * $items_per_page) echo '<a href="?start='.$next_offset.'&limit='.$items_per_page.'">prev</a>';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13501 次 |
| 最近记录: |