0

わかりました、私が取り組んでいるプライベート メッセージング システムがあります。これがどのように構成されているかを示します

ID From-ID To-ID Message Thread
1 0 1 "blah blah blah" 1
2 0 1 "blah blah blah, blah!" 1
3 0 3 "hey <3>, how are you? Signed, <0>" 2

このように、スレッドに複数のメッセージを入れることができるので、返信することができます。

次に、プライベート メッセージ ページの左側で、表示するスレッドを選択できます。

送信者の名前を表示するボタンになるので、次の SQL を使用しました。

mysql_query("SELECT * FROM pms WHERE to-id='".$_SESSION['id']."' ORDER BY id ASC");

でも、(疑似コード)のようなものにしたい

mysql_query("SELECT * FROM pms WHERE to-id='".$_SESSION['id']."' LIMIT 1 per `thread` ORDER BY id ASC");

スレッドへのリンクが 1 つだけ表示されるようにします。

ただし、現在起こっていることは、スレッドへの返信があるたびに新しいボタンが表示されることです。したがって、メッセージに 100 件の返信があり、それらがすべて同じスレッドにある場合 (それらは「返信」であるため)、101 個のボタンが存在することになりますが、これは明らかな理由から理想的ではありません。

私が話しているボタンの制限を除いて、すべてが現在機能しています。

4

1 に答える 1

1

まず最初に... ID 列... 自動インクリメントすべきではありませんか? チェックしてるだけ...

すべてのスレッドを取得したい場合は、次のようにしたいかもしれません...

Select distinct thread from pms

-- then optionally...
where to-id = '".$_SESSION['id']"' order by ID asc

そうすれば、その各スレッドの最初のインスタンスを取得できます。

于 2013-10-20T18:29:08.720 に答える