Here's my problem, in my inbox it shows multiple messages that I received from one user only. I need to to display my inbox just like facebook. Showing only one message per one user. Much like a conversation view. Wherein, the last message between me and a user is showed in the inbox (either his last message, or my last reply to him).
I have tried GROUP BY, but the results are not accurate. Some recent messages are not displayed and it is not sorted by date of last conversation.
Here's my database structure:
+-----------------------------------------------------------------------------------+ | users_messages | +-----------------------------------------------------------------------------------+ | message_ID | sender |receiver| date | subject | body | unread | delete1 | delete2 | +-----------------------------------------------------------------------------------+ +---------------------+ | members | +---------------------+ | id | username | ... +----+----------+-----+
Here is my current query:
$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']);