好的,我对我的页面发生了什么感到困惑。我的页面底部有一个页码,一个表中有23个各种项目的表。
每个页面应该一次显示5个项目。我有页面显示发送带有pagenumber = whatever的get。
基本上我有这个:
$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是否保留了之前页面中的原始数据?
我真的不知道问题是什么,希望有人可以提供帮助。
TY
只是为了澄清这是该页面上当前页面和数据的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
答案 0 :(得分:1)
LIMIT的语法可选地是起始偏移量,然后是您想要的行数(documentation)。所以你的第二个值应该总是5
答案 1 :(得分:0)
试试这种方式
$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");