私は、MySQL クエリが何をする必要があるかを正確に示すコードを作成しました。2 つのクエリを結合しようとしましたが、うまくいきませんでした。基本的に、これが行うことは、$session がまだフレンドになっていないすべてのユーザーを選択することです。
以下のクエリを使用して何をする必要があるかを確認できるため、テーブル構造に関する限り、どれだけ説明する必要があるかわかりませんが、基本的に、友人テーブルには友情ごとに 1 つの行しかありません。(私のテーブルには友情の行が 1 つしかないため、友情は、友情から IDを取得するためにステートメントが必要であるstate
場合にのみ有効です。1
CASE
friends
$getUsers = mysql_query("SELECT id FROM users WHERE id!=$session");
$getFriends = mysql_query("SELECT CASE WHEN userID=$session THEN userID2 ELSE userID END AS friendID
FROM friends
WHERE (userID=$session OR userID2=$session)
AND state='1'");
$usersArray = array();
$friendsArray = array();
while($usersC = mysql_fetch_array($getUsers))
{
$usersID = $usersC['id'];
array_push($usersArray, $usersID);
}
while($usersF = mysql_fetch_array($getFriends))
{
$friendID = $usersF['friendID'];
array_push($friendsArray, $friendID);
}
print_r(array_merge(array_diff($usersArray, $friendsArray), array_diff($friendsArray, $usersArray)));