我想显示的消息列表像facebook信使在左角,你可以看到所有的消息你。
用户表
user_id
user_firstname
user_latsname
消息表
message_id
message_user_id
message_to_user_id
message_content
message_time_stamp
我的sql
SELECT user_table.user_id,
CONCAT(user_table.user_firstname,' ',user_table.user_lastname) AS user_fullname,
message_table.message_user_id,
message_table.message_content,
message_table.message_time_stamp
FROM user_table
INNER JOIN message_table
ON user_table.user_id = message_table.message_user_id
WHERE (message_table.message_to_user_id = '$session')
ORDER BY message_table.message_time_stamp DESC
如果有人先给我发信息,我的代码就可以正常工作。在我的信息列表中显示有人给我发信息。但当我是第一个传达信息的人。它不显示在我的邮件列表中。他应该先回复我的信息,然后我才能在信息列表中看到它。但我想告诉你什么时候有人给我发信息,什么时候我是第一个发信息的人。
带有示例数据的消息表
带有示例数据的用户表
结果
但当我在user\表中添加新用户并向他发送消息时。它不会显示在我的邮件列表中。
我希望我的预期结果是,当我的消息新用户将显示在我的消息列表
2条答案
按热度按时间2admgd591#
您的行(在sql查询中)
这可能就是为什么你看不到自己发送的邮件的原因(因为你不是收件人)
要获取您参与的所有消息,它可能应该是:
我希望$session不是用户提供的,或者您手头有一些可能的sql注入;(o)
nwsw7zdq2#
解决方案
这是我解决问题的方法。我做了2个select语句,其中第一个select只选择我在哪里发第一条消息,第二个select语句选择某人在哪里给我发第一条消息。然后我把它结合起来。