这是我的问题,在我的收件箱中,它显示了我仅从一个用户收到的多条消息。我需要像 facebook 一样显示我的收件箱。每个用户只显示一条消息。很像对话视图。其中,我和用户之间的最后一条消息显示在收件箱中(他的最后一条消息,或者我给他的最后一条回复)。
我试过 GROUP BY,但结果不准确。一些最近的消息不会显示,也不会按上次对话的日期排序。
这是我的数据库结构:
+-----------------------------------------------------------------------------------+
| users_messages |
+-----------------------------------------------------------------------------------+
| message_ID | sender |receiver| date | subject | body | unread | delete1 | delete2 |
+-----------------------------------------------------------------------------------+
+---------------------+
| members |
+---------------------+
| id | username | ...
+----+----------+-----+
这是我当前的查询:
$result = $DB->query("SELECT p.*, p.sender as sender, m.*
FROM " . DB_PREFIX . "messages p
LEFT JOIN " . DB_PREFIX . "members m ON p.sender=m.member_id
WHERE p.receiver='" . $SESSION->conf['member_id'] . "' AND delete2=0
GROUP BY p.sender ORDER BY p.senddate DESC
LIMIT " . (($page - 1) * $PREFS->conf['per_page']) . ", " . $PREFS->conf['per_page']);