所以我无法让它发挥作用。
我的变量$page
包含当前页面,$total_pages
包含总页数,$limit
包含每页最大行数。
我尝试过做很多事情,但我还是不明白。
这是我尝试过的最新事情。适用于第1页和第1页2然后它就停止了工作
if ($page == 1) {
$count = 1;
} else {
$count = $page * $limit/2 + 1;
}
该代码位于我的while循环之上,循环出行。
答案 0 :(得分:1)
这是:
if ($page == 1) {
$count = 1;
} else {
$count = ($page - 1) * $limit + 1;
}
它等于您为$ page = 1或2尝试的内容,这就是它工作的原因。这甚至更短,并且与$page
:
$count = ($page - 1) * $limit + 1;
答案 1 :(得分:1)
在这里通过简单的数学思考。
如果$page
的值为> = 1,则每页的第一行计算如下:
$first_row_num = (($page - 1) * $limit) + 1;
第一页与其他页面不需要不同的逻辑分支。
另请注意,在处理页码时,在查询数据库时需要使用从零开始的页码。所以在查询数据库之前你需要做这样的事情。
$offset = ($page - 1) * $limit;
在您的LIMIT条款中,您将使用:
... LIMIT $offset, $limit
因此,考虑到您需要在显示结果之前计算偏移量,您实际上可能会执行以下操作:
$offset = ($page - 1) * $limit;
// make DB query here
// now calculate first row number using $offset
$first_row_num = $offset + 1;