0

由于我的最后一个问题非常模糊,我想我会澄清一些事情。我正在学习如何构建私人聊天应用程序(仅出于教育原因),并且我正在尝试找出进行私人聊天的最佳方式。我创建了 2 个表,user并且chat. 在chat中,我有 5 列:

  • message_id
  • 用户身份
  • 用户名
  • 信息
  • 发送

我只想从选定的user_id.

现在,这是我的发送表格。输入名称发送 = 我要检索的数据。在掌握窍门之前,我只想检索user_id号码(因此您可以在文本区域中输入一个号码以与该用户名聊天)。

<form name="form" method="post">
    <input type="text" name="send" id="send" value="">
    <input name="user_id" type="hidden" value="<?php echo $_SESSION['user_id'];?>" id="user_id">
    <textarea name="message" class="message" onkeydown="if (event.keyCode == 13) document.getElementById('submit').click()"></textarea>
    <input type="submit"  name="Submit" id="submit" value="">
</form>   

这是我的 php 检索表

<?php
class Chat extends Core {
   public function fetchMessages() {
        $this->query("
        SELECT          chat.message,
                        users.username,
                        users.user_id,
                        chat.send
        FROM            chat
        JOIN            users
        ON              chat.user_id //and chat.send = users.user_id 
        ORDER BY        chat.timestamp
        DESC
    ");

    return $this->rows();
   }

}

基本上,我想将条件设置为:

<?php
$send=$_POST['send'];
$userid=$_POST['user_id'];
if ($send == $userid || (isset($_POST['user_id']))) //this isn't correct- just trying to    display my though
{
    //retrieve message from user_id number in sql table, allowing the people that have the same user_id as send to only read the message.
}   
?>

所以基本上,我怎样才能只检索特定 user_id 号码的信息,我将把这个条件放在哪里?

4

1 回答 1

0

我不确定您的意思,但如果您想从特定用户 ID 获取消息,您可以执行以下操作:

if(isset($_POST['getMsgsById']) && isset($_POST['userid'])){
  $userid = (int)$_POST['userid'];

  $chat = new Chat(); // 


  if(!$msgs = $chat->getMsgsByUserId($userid)){
       echo "No messages found";
  }else{
      $length = count($msgs);

      for($i=0;$i<$length;$i++){
          echo $msgs[$i]['msg']. '<br />';
      }

  }
}


class Chat{

   public function getMsgsByUserId($id){
       $result = mysql_query("SELECT * FROM your_message_table WHERE userid=$id");
       if(mysql_num_rows($result) == 0)
            return array();

       while($info = mysql_fetch_assoc($result)){
           $arr[] = $info;
       }

       return $arr;
   }

}

当然,这只是非常快的事情。

于 2013-09-12T23:59:07.527 回答