2012-04-06 151 views
3

使用PHP和MySQL,我试图让所有涉及实际用户的私人聊天。 为此,我有一个名为“rooms”(id,id_initiate_user,id_target_user)的表和另一个名为“users”(id_pseudo,avatar)的表。 如果实际用户是聊天室的初始用户,我想从目标用户获得头像和伪,并且如果实际用户是该房间的目标用户,我想从头开始获取头像和伪发起用户(无论如何,我想要其他成员的头像和伪)。Mysql查询和条件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

正是我在从昨天起这个查询,并尽快为我张贴我的问题在这里,我设法找到与您的查询完全一样的查询。这很有意义,但从初学者的角度来看,并不一定那么明显。谢谢阿里昂。 PS:我如何投票给你谢谢你? – Baylock 2012-04-06 13:45:25

+0

很好,你自己找到了。我们都是初学者。乐意效劳。也许你可以接受答案呢? – Arion 2012-04-06 13:47:55

+0

完成。谢谢 – Baylock 2012-04-06 13:51:21