我想为Android开发一个社交网络应用程序,用户可以发送友情请求并接受相同的请求。我已经实现了。用户可以发送请求给别人这样的:选择待处理的请求(Friendship Restful Api)PHP和MySql
用户表(用户)
id
name
email
...
关系表(关系)
user_one_id - id of user who is sending the request
user_two_id - id of user who is receiving request
status - 0 for pending request, 1 for accepting request and so on..
action_user_id - which user has done some action in table
,但我没有得到挂起的请求时的确切数目我使用选择查询。
现在我将向您展示一个示例,其中ID 1的用户正在发送请求,而ID 2和ID 4的用户正在接收请求。
现在,如果我试图让使用此查询待处理的请求:
"SELECT u.name, r.user_one_id, r.user_two_id, r.status FROM users u, relationship r WHERE r.user_one_id = ? OR r.user_two_id = ? AND r.status = 0 AND u.id = r.user_one_id AND r.action_user_id != ?"
以及所需的参数是:user_one_id
,user_two_id
和action_user_id
与ID这个例子用户1登录,他不应该能够看到任何未决的请求,因为他没有收到任何,但如果我发送这个查询从上面的参数1
为user_one_id
,1
为user_two_id
和1
为action_user_id
,我越来越喜欢这个JSON响应:
{
"error": false,
"requests": [
{
"name": "Dusan" // user with id 1
},
{
"name": "Dusan"
},
{
"name": "Jelena Radenkovic" // user with id 2
},
{
"name": "Jelena Radenkovic"
},
{
"name": "Stefan Dimitrijevic" // user with id 4
},
{
"name": "Stefan Dimitrijevic"
}
]
}
,但如果用户不发送任何要求,如用户ID 2和ID 4,这是完美的工作原理。如果我发送相同的查询2参数,我得到的只有一个记录,因为它应该是。这就是我得到:
{
"error": false,
"requests": [
{
"name": "Dusan" // getting only this user with id 1 because he sent request to the user with id 2
}
]
}
这是正常的,直到我请求发送给其他用户.. 我希望我也清楚地解释了一切。但如果不明确,请告诉我,我会更多或更好地解释。提前致谢。
您可以用'选择u.name,r.user_one_id,r.user_two_id,r.status来自用户的U,关系R其中r.user_two_id =? AND r.status = 0 AND u.id = r.user_one_id'其中'r.user_two_id =?'是不使用action_user_id的当前用户的 –
的ID? –
action_user_id指示哪个用户已经完成了一些操作(发送请求,接受请求等) –