我正在制作我的PM系统而且我想要反转,这样你就可以看到你和你传达的人之间的对话..
因此,如果您之前已经与其他人进行了比较,那么它将显示在。
之下这是一个我是“Pat”的例子,即将回答我从戴安娜那里得到的最后一个下午:
***TEXTFIELD***
Yes okay, ill be there at 10pm
****SEND***
Diana- What about the cafetera?
Pat - Sure, when and where?
Diana - Hi, how are you long time no see, wanna meetup?
我想知道应该怎么做?现在你分别看到了消息,而且它没有显示任何旧的pm
这就是我应该如何工作思考:
如果戴安娜写信给你,第一次就像:
戴安娜 - 嗨,你好久不见,想见面?
然后有一个普通的文本字段框,您可以输入它来回答它。如果您对此做出回答,它将在您要插入的行上的“对话框”栏中存储消息ID,Diana消息。
它还将使用Diana的消息更新该行,并在其中的“对话框”列中应用id。然后你和他人一起来回走动,你一直通过消息上方的文本框回答,它总是将第一个id存储在对话框列中。
然后在文本字段下显示所有pm,我将只检查消息列“对话框”中是否有$id
。
如果有,则取$id
,然后获取包含列对话框$id
的所有行,并按日期对其进行排序
您如何看待这种方法?有没有缺点,这可以更轻松吗?你想到的更好的方法是什么?
答案 0 :(得分:0)
你得到了什么:sender_id
recipient_id
这就是你需要的所有东西
pm_table
------------------------------------------------------------
| sender_id | recipient_id | message | created_at |
------------------------------------------------------------
| 3 | 7 | hi | 2007-09-08 09:01:00 |
------------------------------------------------------------
| 7 | 3 | hi you | 2007-09-08 09:03:00 |
------------------------------------------------------------
| 3 | 7 | meet? | 2007-09-08 09:05:00 |
------------------------------------------------------------
| 7 | 3 | yeah | 2007-09-08 09:07:00 |
USER_TABLE
-----------------------
| user_id | user_name |
-----------------------
| 3 | john |
-----------------------
| 7 | darcy |
查询:
SELECT send.user_name AS sender,
recipient.user_name AS recipient,
pm.message AS message
FROM pm_table AS pm
JOIN user_table AS sender ON (pm.sender_id = sender.user_id)
JOIN user_table AS recipient ON (pm.recipient_id = recipient.user_id)
WHERE pm.sender_id IN (3,7)
OR pm.recipient_id IN (3,7)
ORDER BY pm.created_at ASC
LIMIT 5
结果:
--------------------------------
| sender | recipient | message |
--------------------------------
| john | darcy | hi |
--------------------------------
| darcy | john | hi you |
--------------------------------
| john | darcy | meet? |
--------------------------------
| darcy | john | yeah |
修改强>
使用pm_table中的引用的主题/对话框表应该可以做到这一点
SELECT sender.username AS sender,
recipient.username AS recipient,
pm.message AS message,
topic.topic_name AS topic
FROM pm_table AS pm
JOIN user_table AS sender ON (pm.sender_id = sender.user_id)
JOIN user_table AS recipient ON (pm.reciver_id = recipient.user_id)
JOIN topic_table AS topic ON (pm.topic_id = topic.topic_id)
WHERE pm.topic_id IN (1)
我确信查询可以做得更好:/