显示对话框的方法

时间:2010-11-03 15:28:25

标签: php

我正在制作我的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的所有行,并按日期对其进行排序

您如何看待这种方法?有没有缺点,这可以更轻松吗?你想到的更好的方法是什么?

1 个答案:

答案 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)

我确信查询可以做得更好:/