PHPとMySQLを使用して、実際のユーザーが関与するすべてのプライベートチャットを取得しようとしています。そのために、「rooms」(id、id_initiate_user、id_target_user)というテーブルと、「users」(id_pseudo、avatar)という別のテーブルがあります。実際のユーザーがチャットルームの開始ユーザーである場合は、ターゲットユーザーからアバターと疑似を取得し、実際のユーザーがその部屋のターゲットユーザーである場合は、開始ユーザーからアバターと疑似を取得します。ユーザー(いずれにせよ、他のメンバーのアバターと疑似が必要です)。
クエリに条件が必要だと思いますが、それを管理する方法が本当にわかりません(1日中グーグルで検索)。
これが私のクエリです(ロジックはありますが、構文は明らかに間違っています:
$user_id=$_SESSION['user_id'];
$res = @mysql_query("
SELECT rooms.id, rooms.id_initiate_user, rooms.id_target_user, rooms.pv, users.id, users.pseudo, users.avatar
FROM rooms, users
WHERE
(
(rooms.id_initiate_user='$user_id' OR rooms.id_target_user='$user_id')
AND
(
IF (rooms.id_initiate_user='$user_id')
THEN rooms.id_target_user=users.id
ELSE rooms.id_initiate_user=users.id;
END IF;
)
) ORDER BY rooms.id ASC");
私はこのあたりで「条件付きの場所」に関する質問をたくさん読みましたが、どれも私のケースを解決しませんでした。ご協力ありがとうございました。