私はFacebookのメッセージングシステム(メッセージをスレッドとして表示)と同様のメッセージングシステムを構築しています。Facebookのようなメッセージングシステム - 最後の返信で並べ替え
私の現在のテーブル設計は次のとおりです。
CREATE TABLE IF NOT EXISTS messages (
mid int(11) NOT NULL auto_increment,
subject text NOT NULL,
message text NOT NULL,
fromid varchar(255) NOT NULL default '',
toid varchar(255) NOT NULL default '',
status varchar(255) NOT NULL default '',
date varchar(255) NOT NULL default '',
time varchar(255) NOT NULL,
PRIMARY KEY (mid)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2825 ;`
私はこのselect文で結果を取得しています:
SELECT
IF(messages.toid = '$uid' OR messages.toid = '$uid', messages.fromid, messages.toid) friend1,
messages.message, messages.fromid, messages.toid, messages.date, messages.status, messages.time
FROM messages
WHERE (messages.toid='$uid' OR messages.fromid='$uid')
AND messages.status!='2'
GROUP BY friend1 ASC
ORDER BY messages.time DESC, messages.mid DESC
これは私にそれがスレッドからの最初の投稿を表示するため除いて、右の結果を与え、最新の投稿をスレッドに表示することをお勧めします。
私は間違っていますか?
facebookタグを貼ります。 – hjpotter92