我想显示特定的编号。每页记录数?下面的代码用于分页。我试图每页显示 2 条记录。成功在第一页显示两条记录。问题开始发生在下一页。目前我有 10 条记录。它会像这样显示第 1 页 = 2 条记录。 +---+---------+------------------+-------+ |No.| File ID | File Desc. |Status | +---+---------+------------------+-------+ |1 | 400/4 | 1 - Test 1 400/4 | | +---+---------+------------------+-------+ |2 | 400/1 | 5 - Test 5 400/1 | | +---+---------+------------------+-------+第 2 页 = 4 条记录(2 条记录 + 第 3 页的 2 条记录) +---+---------+------------------+-------+ |No.| File ID | File Desc. |Status | +---+---------+------------------+-------+ |1 | 400/3 | 2 - Test 2 400/3 | | +---+---------+------------------+-------+ |2 | 400/3 | 1 - Test 1 400/3 | | +---+---------+------------------+-------+ |3 | 400/2 | 3 - Test 3 400/2 | | +---+---------+------------------+-------+ |4 | 400/2 | 2 - Test 2 400/2 | | +---+---------+------------------+-------+第 3 页 = 6 条记录(2 条记录 + 第 4 页的 2 条记录 + 第 5 页的 2 条记录) +---+---------+------------------+-------+ |No.| File ID | File Desc. |Status | +---+---------+------------------+-------+ |1 | 400/2 | 3 - Test 3 400/2 | | +---+---------+------------------+-------+ |2 | 400/2 | 2 - Test 2 400/2 | | +---+---------+------------------+-------+ |3 | 400/2 | 1 - Test 1 400/2 | | +---+---------+------------------+-------+ |4 | 400/1 | 3 - Test 3 400/1 | | +---+---------+------------------+-------+ |5 | 400/1 | 2 - Test 2 400/1 | | +---+---------+------------------+-------+ |6 | 400/1 | 1 - Test 1 400/1 | | +---+---------+------------------+-------+第 4 页 = 4 条记录(2 条记录 + 第 5 页的 2 条记录)。
2 回答
浮云间
TA贡献1829条经验 获得超4个赞
问题是你没有在你的 sql 查询中更新你的开始或偏移量。如果偏移量是正确的,它只会获取你需要的某些记录集。带有偏移量的 sql 查询示例:下面的 SQL 查询表示“仅返回 2 条记录,从记录 1 (OFFSET 0) 开始”:
$page=0;
$per_page = 2;
$offset=$page*$per_page; //0
$sql = "SELECT * FROM Orders LIMIT 2 OFFSET 0";
当您单击下一页时,应更新开始/偏移量
$page=1;
$per_page = 2;
$offset=$page*$per_page; //2
$sql = "SELECT * FROM Orders LIMIT 2 OFFSET 2";
单击第三页代码将更新为
$page=2;
$per_page = 2;
$offset=$page*$per_page; //4
$sql = "SELECT * FROM Orders LIMIT 2 OFFSET 4";
等等...
所以 sql 语句应该是这样的:
$sql = "SELECT * FROM Orders LIMIT $per_page OFFSET $offset";
或者
您还可以使用更短的语法来实现相同的结果:
$sql = "SELECT * FROM Orders LIMIT $offset, $per_page"
- 2 回答
- 0 关注
- 190 浏览
添加回答
举报
0/150
提交
取消