我正在创建基于对话的php消息系统。我遇到了问题。
我有一个包含列的表:id
,to
,from
,msgtext
,timesent
,viewed
,deleted
。
我想在to
和from
之间只选择一个对话。请注意,如果用户to
可以向用户from
发送消息。
如何选择单独的对话?
我正在尝试使用这个SQL:
SELECT to
,from
FROM pms
WHERE to
='$ userid'或from
= $ userid group by to
ORDER by id desc LIMIT 50
但这不是另一种方式。因为如果user1向user2写入消息,user2回复给user1,如果user1回复并且user2回复,我会看到2个对话,但它应该是一个对话。
它应该是这样的: 用户向其他用户发送消息。它应该在对话列表中显示其他用户的名字。 如果用户从另一个用户收到消息,他应该在对话列表中看到他的名字。
答案 0 :(得分:0)
试试此代码
SELECT `id`, `to`, `from`, `msgtext`, `timesent`, `viewed`, `deleted` FROM table_name
WHERE `to` = 'username_to' AND `from` = 'username_from'
LIMIT 1
OFFSET 0
如果您了解背后的概念,您将意识到您只需要使用OFFSET号码来获取下一条记录。
P.S。 LIMIT&的快捷方式上面的OFFSET行是:
LIMIT 0, 1
另外,当您在Stack Overflow上询问某些内容时,您应该显示您尝试过的内容,并询问为什么不起作用,而不是简单地询问代码。