0

我正在构建一个类似于 facebook 的消息传递系统(它将消息显示为线程)。

基本上我需要指定至少 1 个成员 ID 才能从列表中检索。因此,要么是“收件人”列,以便您能够获取从特定成员收到的消息,要么使用“发件人”列来检索发送给您的消息。或者,该命令必须在某处指定一个成员 ID,并且能够过滤掉重复的条目。

在这种情况下:http: //i.imgur.com/oki7bWQ.png 由于我是会员 ID 1,我希望能够检索发送给我的消息,但过滤掉由用户 ID 发送给我的重复消息50.

这样最终的结果就会变成这样:http: //i.imgur.com/jmP96dd.png

我目前的功能是:

SELECT * FROM `cometchat` WHERE `to` = 1 or `from` = 1 ORDER BY `sent` DESC 

这是上述代码的输出:i.imgur.com/zQhNNcu.png

我究竟做错了什么?

4

2 回答 2

0

您需要查询,以便检索用户之间的所有对话,类似于我们在 CometChat 管理面板中的 Logs 中的操作方式。将条目插入数据库的方式无需更改。

例如,要获取 $userid1 和 $userid2 之间的对话:

$sql = ("select * from cometchat where (`from` = ".mysqli_real_escape_string($dbh,$userid1)." and `to` =  ".mysqli_real_escape_string($dbh,$userid2).") or (`to` =  ".mysqli_real_escape_string($dbh,$userid1)." and `from` =  ".mysqli_real_escape_string($dbh,$userid2).") order by id desc");

如果您需要进一步的帮助,请随时通过 support@cometchat.com 给我们发送电子邮件。

于 2016-03-29T06:20:55.047 回答
0

你试过了吗

SELECT DISTINCT SENDER_ID, MESSAGE_TEXT FROM ...

在底部查询?注意使用“MESSAGE”= message_text 而不是 MESSAGE_ID。

如果您为具有多个接收者的同一消息添加多个独立消息(多个 MESSAGE_ID),它应该会有所帮助。

于 2016-03-28T08:25:24.380 回答