信使功能

时间:2017-04-20 08:44:49

标签: php html ajax

我正在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;

1 个答案:

答案 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;