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");

这样它只会显示一个线程的链接。

但现在发生的情况是,每次有对线程的回复时,它都会显示一个新按钮。因此,如果对消息有 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 回答