从mysql / php中的用户标识中检索消息

时间:2013-09-12 23:38:32

标签: php mysql sql chat

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

  • MESSAGE_ID
  • USER_ID
  • 用户名
  • 消息
  • 发送

我只想检索所选user_id的消息。

现在,这是我的发送表格。输入名称send =我要检索的数据。在我解决问题之前,我只想检索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号码的信息,以及我在哪里放置这个条件?

1 个答案:

答案 0 :(得分: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;
   }

}

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