我有这个表为用户存储消息。它有id(PK), username, message, time, date
。当您登录帐户时,它会显示所有聊天记录的列表。但是这个DB只显示消息。我是否必须以某种方式创建另一个表连接到第一个数据库或过滤器,以便获取我正在聊天的人的用户名?获取用户名的意思是我有这个已发送消息的人员列表。有没有办法获得这些用户名?
如果不清楚,我很抱歉。如果您需要更多解释,请立即告诉我。 这个问题对我来说非常复杂。
顺便说一句,这是代码:
<div id='messages'>
<nav>
<ul id=''>
<?php
$m = new mysqli('localhost', 'root', 'xamppprogram', 'blue_messenger');
if($m === FALSE){
include('./errordb2.php');
die();
}
$sql = "SELECT * FROM messages WHERE username='$username'";
$results = $m->query($sql);
if($results->num_rows > 0){
while($r = $results->fetch_assoc()){
// What to do here?
}
} else {
echo "No new messages.";
}
?>
<ul>
<nav>
</div>
<div id='chat-content'>
答案 0 :(得分:3)
您可以在表格上添加另一列,例如toUser
,用于存储您正在聊天的用户的姓名。然后你可以在你的SQL中使用GROUP BY toUser
条件。这将是最简单的解决方案,但正如其他人在问题的评论中所述,关系数据库将是最好的。
您最好使用预准备语句,因为此处似乎使用了用户输入,并且可以打开SQL注入。
参考文献: