通过使用php将mysql数据库记录拆分为N个数组来分组

通过使用php将mysql数据库记录拆分为N个数组来分组,php,mysql,arrays,sorting,multidimensional-array,Php,Mysql,Arrays,Sorting,Multidimensional Array,我有一个mysql数据库,有数千行,每行包含一个产品的销售交易数据。这些产品具有唯一ID,产品总数未定义。 ID产品名称交易ID日期 123产品1 ergkljdlkjfgklgh 2015年9月1日 144产品5 eyghfeoopjfgkl 2015年9月5日 123产品1 jdlkjfghrttgklgej 2015年9月8日 144产品5 NGFUKHJKGFHJJCS 2015年9月15日 123产品1 utebhjgdsdhjfdt 2015年9月20日 等等 在php的帮助下,我

我有一个mysql数据库,有数千行,每行包含一个产品的销售交易数据。这些产品具有唯一ID,产品总数未定义。

ID产品名称交易ID日期

123产品1 ergkljdlkjfgklgh 2015年9月1日
144产品5 eyghfeoopjfgkl 2015年9月5日
123产品1 jdlkjfghrttgklgej 2015年9月8日
144产品5 NGFUKHJKGFHJJCS 2015年9月15日
123产品1 utebhjgdsdhjfdt 2015年9月20日

等等

在php的帮助下,我需要将数据库转换为一个简单的列表,每一行包含唯一的产品ID、产品名称、该产品在数据库中的出现次数以及销售日期,并合并为一个字符串(稍后将处理)

为了说明,上表应转换为:

ID产品名称销售日期的编号

123产品1 2015年9月1日3日\u 2015年9月8日\u 2015年9月20日
144产品5 2015年9月5日2日\u 2015年9月15日

我认为这样做的方法与排序和循环不同的数组有关,但是我有点困惑,不能完全围绕它来思考

我是否按ID排序,将所有唯一ID放入数组,循环数组以检索组和项目数,为每个组创建单独的数组以获取日期


也许以前遇到过这种挑战的人可以给我指出正确的方向:)

您想创建新表还是在同一个表上工作。如果是另一个,那么很简单,您可以对列执行select using,然后使用ID对它们进行排序。要获取日期,您可以使用COALESCE(字段1’,|’| COALESCE(字段2’)。否则,您可以在PHP中通过编程方式处理该问题,方法是使用一个保存日期值的全局变量,然后使用点运算符为产品的每个实例追加日期

在一个查询中,
orderbyid
-然后迭代results是的,我打算用results创建一个新表,然后我认为这是非常简单的。不确定COALESCE做什么,数据库中没有空字段,我打算用php来追加日期,只是不确定数组部分。你也可以这样做<代码>选择concat(column1,“,”列,column2)我是否按ID排序,将所有唯一ID放入数组,循环数组以检索组和项目数,为每个组创建单独的数组以获取日期?