【发布时间】:2013-03-27 20:17:57
【问题描述】:
您好,我正在尝试在我的网站上设置一个 IM 聊天系统,以便用户可以进入用户个人资料并向他们发送消息。
到目前为止,我所拥有的是用户 1 可以向用户 2 发送消息,并且用户 1 和用户 2 都可以在该框窗口中看到聊天。
我的数据库如下所示:
id | to_user_id | from_user_id | date_added | content
1 2 1 10/01/12 hello
我的 mysql 插入看起来像这样:
$sql = "INSERT INTO ptb_chats (id, to_user_id, from_user_id, content) VALUES (NULL, '".$profile_id."', '".$_SESSION['user_id']."', '".$chat_area."');";
mysql_query($sql, $connection);
$profile_id 存储用户所在的个人资料,因此它知道要将消息发送给哪个用户,但是收到消息的用户也将在他们的个人资料中,因为这是聊天窗口所在的位置。
所以现在这会导致一个问题,因为用户 1 将进入用户 2 的个人资料,而用户 1 将输入一条消息。用户 2 将收到此消息,但如果用户 2 尝试回复用户 1,那么由于用户 2 正在从他们的个人资料中回复,因此数据库中的 to_user_id 存储了他们的 $profile_id
所以用户 2 发回给用户 1 的消息没有被传递给用户 1,而是被传递给用户 2。to_user_id 被设置为用户所在的配置文件。
我需要一种方法来存储上一条消息中的 from_user_id,并在回复时将其作为 to_user_id 的值插入?
我希望这是有道理的。感谢您的帮助。
【问题讨论】:
-
您不能将 profile_id 存储为单独的列吗?