2012-04-06 28 views
3

PHPとMySQLを使用して、私は実際のユーザに関係するすべてのプライベートチャットを取得しようとしています。 私は "rooms"(id、id_initiate_user、id_target_user)というテーブルと "users"(id_pseudo、avatar)というテーブルを持っています。 実際のユーザーがチャットルームの開始ユーザーである場合、対象ユーザーからアバターと擬似を取得したいと思います。実際のユーザーがそのルームのターゲットユーザーであれば、アバターと擬似を(どのような場合でも、私は他のメンバーのアバターと擬似を望みます)。mysqlのクエリと条件where where

私は私のクエリで条件が必要だと思うが、私は本当にそれを管理する方法(一日中グーグルグーグル)を知らない。ここで

は、私のクエリ(論理があるですが、構文は明らかに間違っている:。

$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"); 

が、私はそれのどれも私の場合を解決していないこの辺り「どこ条件」に関する質問をたくさん読ん 感謝。あなたの助けのためのあなた

答えて

3

あなたはこのような何かを行うことはできません:。私はここに私の質問を掲示して

WHERE 
(
    (
     rooms.id_initiate_user='$user_id' 
     AND rooms.id_target_user=users.id 
    ) 
    OR 
    (
     rooms.id_target_user='$user_id' 
     AND rooms.id_initiate_user=users.id 
    ) 
) 
+0

まさに私は、すぐに昨日からこのクエリにだと、Iあなたと同じクエリを見つけることができましたが、これは完全に機能するようです。それは多くの意味がありますが、初心者からは必ずしも明らかではありません。ありがとうアリオン。 PS:あなたに感謝の意を表するにはどうすればいいですか? – Baylock

+0

自分で見つけて良かったですね。私たちはすべて初心者です。喜んで助けてください。多分あなたは答えを受け入れることができますか? – Arion

+0

完了。 – Baylock