我正在使用PHP和MySQL来创建消息传递脚本,我需要做的是在收件箱中显示原始消息,并且仅在单击特定消息时显示与原始消息链接的消息链。应为发送者和接收者显示原始消息。
这是我在表中插入的内容
message_id
to_user_id
from_user_id
subject
message
original_message_id
当启动新消息时,original_message_id
为空,但无论谁回复此消息,original_message_id
列都会存储与message_id
相同的 ID 以跟踪对话。
现在为了测试这一点,让我们假设系统 1 和 2 中有两个user_ids。我将新消息从 from_user_id
1 发送到to_user_id
2,回复也从 from_user_id
1 发送到 to_user_id
2。
我的表中有条目,没有任何问题。到目前为止,这是正确的。我卡在的是当我在收件箱中显示新邮件时,它会显示两条记录原始邮件的回复,这是我正在使用的查询,请让我知道此查询有什么问题
`SELECT * FROM tbl_messages WHERE `to_user_id` = '1' OR `from_user_id` = '1' AND original_id IS NULL`
我同时使用to_user_id
和from_user_id
的原因,因此系统显示收件人的原始接收消息和发件人的已发送消息
任何帮助将不胜感激。
AND
运算符的优先级高于 OR
,因此您需要添加括号以获得预期的解析。
SELECT * FROM tbl_messages WHERE (`to_user_id` = '1' OR `from_user_id` = '1') AND original_id IS NULL