php - 按月份分隔MySQL查询结果

标签 php mysql arrays

情况

我有一个 MySQL 数据库表,里面有很多日期。

现在我需要从这个表条目创建一个表,它应该如下所示:

May        |          |
22.05.2014 | Person 1 | Person 2
23.05.2014 | Person 1 | Person 2

June       |          |
02.06.2014 | Person 1 | Person 2
25.06.2014 | Person 1 | Person 2

等..

代码

我现在正尝试通过我的所有查询结果创建一个循环来执行此操作。就在那里,我卡住了。

我有这样的事情:

在“while”(获取关联)循环中我有这个:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $date = $row['pp_date'];
  $month = date('m', strtotime($date));

  $entryarray = array();

}

您可以看到,我首先将日期的月份保存到数组中。现在我不知道如何创建数组来保存数组中每个月的所有行,最终将结果输出到表中。

最佳答案

我假设您的表格报告只有一年。如果是这样,您可以只使用月份作为数组的索引键。

$table = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  $month = date('m', strtotime($row['pp_date']));
  if(!isset($table[$month]))
  {
     $table[$month] = array();
  }

  $table[$month][] = $row; //... add a table row
}

您现在可以通过遍历数组的键来回显 $table 数组。它们将按照创建顺序分组。所以这取决于您的 SQL 查询。

foreach($table as $month=>$rows)
{
     echo $month;
     foreach($rows as $row)
     {
        print_r($row);
     }
}

关于php - 按月份分隔MySQL查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25976198/

相关文章:

php - 为 View 使用替代结构时出错

mysql - 用于更新每个备用列的 SQL 查询

C++ 将字节值作为 int 添加到 CString

java - 将元素添加到字符串数组 String[] 并在 Junit 中测试结果

javascript - 如何使用 AJAX 对选择选项执行 PHP 查询?

php - lazyload 在使用无限滚动时不在新页面上加载图像

mysql - 性能方面,在 mysql 中存储 lon 和 lat GEO 数据的最佳方式是什么?

javascript - 根据数组中的值动态更改 CSS

php - 如何从评估范围中删除 $this?

mysql - 如何在 WAMP 服务器上的 MySQL 中添加外键?