分页行编号

时间:2014-01-06 17:38:09

标签: php

所以我无法让它发挥作用。

我的变量$page包含当前页面,$total_pages包含总页数,$limit包含每页最大行数。

我尝试过做很多事情,但我还是不明白。

这是我尝试过的最新事情。适用于第1页和第1页2然后它就停止了工作

if ($page == 1) {
        $count = 1;
    } else {
        $count = $page * $limit/2 + 1;
    }

该代码位于我的while循环之上,循环出行。

2 个答案:

答案 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;