无法通过PHP和MySQL获取已接受的请求

时间:2016-04-22 22:39:45

标签: php android mysql

我正在为Android开发一个应用程序,用户可以向其他用户发送一些质询请求,并且在接受质询请求后,我正在更新该表中特定行的状态,现在我应该能够检索那些被接受的要求。我正在成功检索待处理的质询请求,但接受了我无法检索的质询请求。实际上我从那张桌子上得到的所有行都不好。

这就是我的表格challenges的样子:

id

user_one_id引用users表{/ 1}}

user_id引用user_two_id表{/ 1}}

users

这就是我正在检索待处理请求的方式:

user_id

这就是我试图检索已接受的请求但未获得好结果的方法:

status

一个注意事项:应该考虑有时候要登录的用户可能是表SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.created_at, c.isRead, c.id FROM users u, challenges c WHERE c.user_two_id = ? AND c.status = 0 AND u.id = c.user_one_id ORDER BY c.created_at ASC 中id为id或id为2的用户,因为他可能是发送该用户的用户请求或接收请求的人。

更新

MySQL的:

SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.created_at, c.isRead, c.id FROM users u, challenges c 
WHERE c.user_one_id = ? AND 
    c.user_two_id = ? AND c.status = 1 AND u.id = c.user_one_id OR u.id = c.user_two_id 
ORDER BY c.created_at ASC

我正在调用函数:

challenges

1 个答案:

答案 0 :(得分:1)

这应该以您需要的方式返回结果

SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.created_at, c.isRead, c.id FROM users u, challenges c 
WHERE c.user_one_id = ? AND 
    c.user_two_id = ? AND c.status = 1 AND (u.id = c.user_one_id OR u.id = c.user_two_id )
ORDER BY c.created_at ASC

更新

SELECT u.name, c.user_one_id, c.user_two_id, c.status, c.isRead, c.id FROM users u, challenges c 
WHERE u.id = ? AND c.status = 1 AND (c.user_one_id=? OR c.user_two_id=? )

? must be the id you are posting