Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 分页行编号_Php - Fatal编程技术网

Php 分页行编号

Php 分页行编号,php,Php,所以我不能让它工作 变量$page包含当前页面,$total\u pages包含页面总量,$limit包含每页最大行数 我试过做很多事情,但就是不明白 这是我最近试过的东西。它适用于第1页和第2页,但随后就停止工作了 if ($page == 1) { $count = 1; } else { $count = $page * $limit/2 + 1; } 该代码位于我的while循环之上,while循环循环出行。这是: if ($page =

所以我不能让它工作

变量
$page
包含当前页面,
$total\u pages
包含页面总量,
$limit
包含每页最大行数

我试过做很多事情,但就是不明白

这是我最近试过的东西。它适用于第1页和第2页,但随后就停止工作了

if ($page == 1) {
        $count = 1;
    } else {
        $count = $page * $limit/2 + 1;
    }
该代码位于我的while循环之上,while循环循环出行。

这是:

if ($page == 1) {
    $count = 1;
} else {
    $count = ($page - 1) * $limit + 1;
}
它与您尝试的$page=1或2相当,这就是它起作用的原因。这甚至更短,无论
$page
的值是多少:

$count = ($page - 1) * $limit + 1;

仔细想想这里的简单数学

如果
$page
是一个值>=1,则每个页面上的第一行将按如下方式计算:

$first_row_num = (($page - 1) * $limit) + 1;
第一页和其他页不需要不同的逻辑分支

还要注意,在处理页码时,在查询数据库时需要使用基于零的页码。因此,在查询数据库之前,需要执行类似的操作

$offset = ($page - 1) * $limit;
在您的限制条款中,您将使用:

... LIMIT $offset, $limit
因此,考虑到您需要在显示结果之前计算偏移量,您实际上可以执行以下操作:

$offset = ($page - 1) * $limit;
// make DB query here
// now calculate first row number using $offset
$first_row_num = $offset + 1;

你能显示更多的代码上下文吗?好的。那么你的问题是什么呢?
$count
应该是什么?实际上我认为在查询中更容易一些,这是否用于SQL
限制偏移量,rowcount
子句?