【发布时间】:2016-04-11 09:37:44
【问题描述】:
我有一个包含这些行的表格:
rowAutoID, eventDate, eventTime, personID
带有数据样本的行的屏幕截图:
我想遍历行并根据日期和 personID 对项目进行分组。
这是我目前拥有的:
$query = "SELECT rowAutoID,eventDate,eventTime,personID FROM `PubEvent` ";
$result = mysql_query($query);
if ( $result && mysql_num_rows($result)) {
while( $obj = mysql_fetch_array($result, MYSQL_ASSOC) ) {
echo '<tr><td>'.$obj["eventDate"].' '.$obj["eventTime"].'</td><td>'.$obj["personID"].'</td><td>status</td></tr>';
}
}
它给了我这个:
+---------------------+------------+--------+
| 2015/10/05 05:27:24 | 0000000011 | status |
+---------------------+------------+--------+
| 2015/10/05 05:40:24 | 0000000020 | status |
+---------------------+------------+--------+
| 2015/10/05 06:01:23 | 0000000003 | status |
+---------------------+------------+--------+
| 2015/10/05 11:49:51 | 0000000011 | status |
+---------------------+------------+--------+
所以如果我按日期(不时间)分组,我正在寻找这个结果:
+-------------+------------+--------+----------+
| 2015/10/05 | 0000000011 | status | 05:27:24 |
| | | | 11:49:51 |
+-------------+------------+--------+----------+
| 2015/10/05 | 0000000020 | status | 05:40:24 |
+-------------+------------+--------+----------+
| 2015/10/05 | 0000000003 | status | 06:01:23 |
+-------------+------------+--------+----------+
因此,personID 0000000011 在同一日期和一个额外的列上分组,我得到了该日期/personID 的所有eventTime。
注意:我不想更改我的 SQL,因为我将使用 eventDate、eventTime 来表示状态、用户权限和其他目的。
【问题讨论】:
-
尝试编辑您的 SQL 以使用
GROUP BY子句。 -
@Joshua 我不想更改我的 SQL,因为我将使用 eventDate、eventTime 来表示状态、用户权限和其他目的。
标签: php mysql loops while-loop merge