I have a table named user_join:
| join_to_id | join_by_id | approved |
join_to_id
means to whom user sending the request
join_by_id
means who is sending request
approved
means request accepted or not, if accepted value will be 'Yes' else value will be 'No'
Now I want to display the names of those users who APPROVED BY current id user or who APPROVED CURRENT id user.
Here is my code :
$query = "SELECT * FROM user_join where (join_to_id = '".$_GET['id']."' and approved = 'Yes' and join_by_id != '".$_GET['id']."' )
or (join_by_id = '".$_GET['id']."' and approved = 'Yes' and join_to_id != '".$_GET['id']."') ORDER BY id DESC";
You are thinking much too complicated. This should do it:
SELECT *
FROM user_join
WHERE '".$_GET['id']."' IN (join_to_id, join_by_id)
AND approved='Yes'
A user is not going to friend himself.
Side note: You should use prepared statements or at least escape the input from $_GET
to prevent SQL injections.