2013-09-10 37 views
1

我是PHP的新手程序员。如何对消息进行排序?

我有一个表中与用户的简单消息的网站,并与消息的另一表:

(date, from user, to users, message, primary key, subject). 

首先,我不知道这是已存储的信息以正确的方式,所以请告诉我。

我很困惑的是消息的显示。

我想要的网页脚本:

  • 连接到数据库
  • 认证用户
  • 经历的所有消息在消息表(最多可以到这里)
  • 经过到用户字段中,看看用户是否是其中的一个(将其拆分为数组,它们全都已被空格分隔)
  • 如果是,则检查是否有其他消息具有在其相同的用户的用户字段
    • 如果是,则与其他人在他们的相同的用户的用户字段组它(可能在多维阵列的第二维度)
    • 否则把它到一个新的“基团”(与多维数组的下一个第一尺寸)

然后,我将只显示多维阵列的第一维度的那些,和点击时将显示剩余的消息(多维数组的所有第二维)在另一个地方。

如果有人能帮助我用这些步骤的一些代码或链接到一个网站可以帮助,请这样做。

+2

您的邮件表中包含“从用户“和**”到用户“**(复数)。对于其中的第二个,如果您将许多用户的引用放在一列中,这将成为一个真正的问题。这里你需要一个多对多的表格。 – halfer

+0

更广泛地说,就脚本的用途而言:您能用几句话总结一下吗?我认为你说的是​​一个可能的解决方案,而不是实际的问题。例如,这个_might_试图“显示当前登录用户的收件箱”(即发送给他们的消息)。 – halfer

+0

是的。我试图对它们进行排序 –

回答

2

要扩大Halfer的答案,问题在于您试图在“至用户”列中存储多个内容。所以你最终会得到类似于用户= 5,24,242的东西。这真的很难从数据库中解析出来。

取而代之,将该列从该表中取出并创建一个名为“消息收件人”的新表,其中具有“消息ID,用户接收”。然后,你可以有多个行,该表将类似于:

1,5

1,24

1,242

...

+0

我明白你的意思,但它并不完全回答我的问题 –

+0

然而,它仍然是一个好主意 –

+2

事实上,这是要走的路。然后你可以使用'JOIN'和'ORDER BY'来获取你的收件箱,按照你想要的方式进行过滤和排序。 – halfer