好的,我对我的页面发生了什么有点困惑。我在底部有页码,一张装满项目的表格说 23 个什锦项目。
每个页面一次应显示 5 个项目。我有显示的页面发送带有页码 = 任何东西的获取。
所以基本上我有这个:
$highLimit = $pageNo*5;
$lowLimit = $highLimit-5;
$sql = mysql_query("SELECT * FROM items
ORDER BY id DESC
LIMIT $lowLimit, $highLimit");
所以这是发生的情况:第一页工作正常并显示正确的 5。然后,第二页显示接下来的 10 页,第三页显示最后 13 页。然后,
第 4 页显示第 3 页的最后 8 页,第 5 页显示第 4 页的最后 3 页。当我输出$sql的num_rows时,它说 5、10、13、8、3。我不明白它如何获得比我输入的限制更多的行。
限制为 0 5、5 10、10 15 等,似乎有效。
那么$sql是保留以前页面的原始数据还是什么?
我真的不知道问题是什么,希望有人可以提供帮助。
泰
只是为了澄清这是该页面上的当前页面和数据ID
页 1:
23, 22, 21, 20, 19
第 2 页:
18, 17, 16, 15, 14
13, 12, 11, 10, 9
第 3 页:
13, 12, 11, 10, 9
8, 7, 6, 5, 4
3, 2, 1
页 4:
8, 7, 6, 5, 4
3, 2, 1
第5页:
3, 2, 1
语法可以选择是起始偏移量,然后是您想要的行(文档(的数字。所以你的第二个值应该总是 5
试试这种方式
$page = isset($_GET["page"]) ? $_GET["page"] : 1;
$max = 5;
$page--;
$lmt = $page * $max;
$page++;
//count number of records from table
$count = 20;
$pages = ceil($count/$max);
$stmt = $db->prepare("SELECT * FROM table_name ORDER BY id DESC LIMIT ".$lmt.", 3");