我正在PHP上构建一个聊天服务器。更喜欢facebook一对一的聊天。我无法弄清楚显示正在聊天的两个用户的消息的查询。我有一个我可以聊天的人员列表,我通过锚标记这样做。但是发件人的邮件在聊天窗口中是可见的,即使发件人从未向他们发送过邮件。如果用户从未与聊天列表中的用户聊过,我无法想出一种不显示消息的方法。
这是列表的代码
echo"<a href='chat/public/01_index.php?id2=$xyz'>Chat</a>";
这是查询
public function getMessages($rid,$userid) {
$messages = array();
$query = <<<QUERY
SELECT
`chat`.`message`,
`chat`.`sent_on`,
`chat`.`rec_id`,
`user1`.`id`,
`user1`.`first_name`
FROM `user1`
JOIN `chat`
ON `chat`.`user_id` = `user1`.`id` WHERE `user1`.`id`=$rid or `user1`.`id`=$userid
ORDER BY `sent_on`
QUERY;
答案 0 :(得分:0)
看起来你在说用户1 =参与用户中的哪一个,但你没有检查用户2.
public function getMessages($rid,$userid) {
$messages = array();
$query = <<<QUERY
SELECT
`chat`.`message`,
`chat`.`sent_on`,
`chat`.`rec_id`,
`user1`.`id`,
`user1`.`first_name`
FROM `user1`
JOIN `chat`
ON `chat`.`user_id` = `user1`.`id` WHERE (`user1`.`id`=$rid AND `user2`.`id` = $userid) or (`user1`.`id`=$userid AND `user2`.`id` = $rid)
ORDER BY `sent_on`
QUERY;