由于我的上一个问题非常模糊,我想我会清楚一些事情。我正在学习如何构建私人聊天应用程序(仅出于教育原因),我正在尝试找出进行私人聊天的最佳方式。我创建了2个表,user
和chat
。在chat
中,我有5列:
我只想检索所选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号码的信息,以及我在哪里放置这个条件?
答案 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;
}
}
当然,这只是一件非常快的事情。