我在PHP和MySQL中使用分页来查看下一个/上一个记录。查询如下:
$domain_id = 1;
$user_id = 8;
$limit = 5;
$sql =
'SELECT users.user, users.id FROM users
JOIN users_matched_domain ON
users.id = users_matched_domain.user_id AND
users_matched_domain.domain_id = '.$domain_id.' AND
users.id < "'.$user_id.'"
ORDER BY users.id ASC LIMIT '.$limit;
表用户如下:
id user
== ===
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
11 k
. .
. .
上述查询效果不佳,它从user_id表中的第一个ID开始带来用户ID。即行ID(1到5),它应该给(3,4,5,6,7),因为它们小于用户ID 8.当我更新上面的查询时,如下所示:
users.id > "'.$user_id.'"
然后分页工作正常(下一个,下一个,下一个),我得到1-5,然后是6-10,11-15等。
我非常感谢你的提示。谢谢你的帮助。
答案 0 :(得分:2)
在您所看到之前,您需要对五个进行desc
排序:
. . .
ORDER BY users.id DESC . . .
换句话说,您希望desc
的{{1}}和<
的{{1}}排序。