php-mysql从数据库中获取下一个和上一个id

Max*_*ain 2 php mysql

我有下表:

**id**         **username**         **activity**
1              user1                  activity-like
2              user1                  activity-share
3              user3                  activity-like
4              user4                  activity-like
5              user1                  activity-share
6              user6                  activity-like
8              user1                  activity-share
9              user3                  activity-like
10             user5                  activity-share
Run Code Online (Sandbox Code Playgroud)

(注意:没有id = 7)

我正在尝试使用php-mysql来获取user1所做的活动并获取id.在这种情况下,活动具有id(1,2,5和8).

$currentId = 5;
Run Code Online (Sandbox Code Playgroud)

如果它们存在,我希望得到下一个和前一个ID(在本例中为2和8).

$fetch = mysql_query("SELECT * FROM `main` WHERE `username` = 'user1' AND id > '$id'");
if(mysql_num_rows($fetch) == 1){
while (){

}
$result = $fetch['id'];
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何编写查询.

abh*_*297 5

你可以这样做:

对于下一个id,

SELECT id from tablename where username = 'user1' AND id > $currentId ORDER BY ID ASC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

对于以前的id,

SELECT id from tablename where username = 'user1' AND id < $currentId ORDER BY ID DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)