This is my way to check for mutual friends in my database.
For ex. if user one has friend user: (1, 2, 3, 4) and user two has friend user: (2, 4, 5) I want to show (2 and 4).
Is there any better way to do this using MYSQL JOINS for ex.?
I have a users
table whith user_id
column which contains all users id and friends
table with user_one
and user_two
columns.
$user_one_fr = $db->query("select * from `friends` where `user_one` = '$session_user_id' or `user_two` = '$session_user_id'");
$user_two_fr = $db->query("select * from `friends` where `user_one` = '$user_id' or `user_two` = '$user_id'");
while ($loop_user_one_fr = mysqli_fetch_assoc($user_one_fr)) {
if($loop_user_one_fr["user_one"] == $session_user_id)
$user_one_fr_array[] = $loop_user_one_fr["user_two"];
else
$user_one_fr_array[] = $loop_user_one_fr["user_one"];
}
while ($loop_user_two_fr = mysqli_fetch_assoc($user_two_fr)) {
if($loop_user_two_fr["user_one"] == $user_id)
$user_two_fr_array[] = $loop_user_two_fr["user_two"];
else
$user_two_fr_array[] = $loop_user_two_fr["user_one"];
}
$mutual_fr = array_intersect($user_one_fr_array, $user_two_fr_array);
foreach ($mutual_fr as $fr)
echo $fr . ', ';