Php 如何对邮件进行排序?

Php 如何对邮件进行排序?,php,mysql,arrays,sorting,multidimensional-array,Php,Mysql,Arrays,Sorting,Multidimensional Array,我是PHP的新手程序员 我有一个简单的消息站点,其中一个表中有用户,另一个表中有消息: (date, from user, to users, message, primary key, subject). 首先,我不确定这是存储消息的正确方式,所以请告诉我 我感到困惑的是信息的显示 我希望页面脚本: 连接到数据库 验证用户 浏览messages表中的所有消息(到此为止很好) 通过“到用户”字段,查看用户是否是其中之一(将其拆分为数组,它们都已被空格分隔) 如果是,则检查是否有任何其他消息在

我是PHP的新手程序员

我有一个简单的消息站点,其中一个表中有用户,另一个表中有消息:

(date, from user, to users, message, primary key, subject).
首先,我不确定这是存储消息的正确方式,所以请告诉我

我感到困惑的是信息的显示

我希望页面脚本:

  • 连接到数据库
  • 验证用户
  • 浏览messages表中的所有消息(到此为止很好)
  • 通过“到用户”字段,查看用户是否是其中之一(将其拆分为数组,它们都已被空格分隔)
  • 如果是,则检查是否有任何其他消息在其“收件人用户”字段中具有相同的用户
    • 如果是,则将其与其他具有相同用户的用户在其“收件人用户”字段中分组(可能在多维数组的第二维度中)
    • 否则将其放入一个新的“组”(具有多维数组的下一个第一维度)
然后,我将只显示多维数组第一维度的消息,单击时将在另一个位置显示其余消息(多维数组的所有第二维度)


如果有人可以通过一些代码或网站链接来帮助我完成这些步骤,请这样做。

要详细介绍Halfer的答案,问题是您试图在“给用户”列中存储多个内容。因此,您将得到类似于Touser=5,24242的结果。这真的很难从数据库中解析

相反,将该列从该表中删除,并创建一个名为“messagerecipients”的新表,该表具有“messageid,user\u receiving”。然后您可以有多个行,该表如下所示:

1,5

1,24

1242


您的消息表包含“发件人”和“收件人”(复数)。对于第二种情况,如果将对多个用户的引用放在一列中,这将成为一个真正的问题。这里需要一个多对多的表。更广泛地说,关于脚本要做什么:你能用几句话概括一下吗?我认为你说的是一个可能的解决办法,而不是实际问题。例如,这可能试图“显示当前登录用户的收件箱”(即发送给他们的邮件)。是。我正试着对它们进行分类我明白你的意思,但它并不能完全回答我的问题事实上,这是一条路要走。然后,您可以使用
JOIN
orderby
以您想要的方式获取收件箱、过滤和排序。