如何从星期一到星期日将数据分组为几周

时间:2015-03-06 19:37:25

标签: php mysql date

我正在从mySQL表中显示一些数据库用户统计信息。我希望按周对数据进行分组,这样我就可以在周一到周日的每周都有单独的表格。数据库中的日期存储为YYYY-MM-DD。

目前我有以下PHP来访问数据:

try {
        $sql   = "SELECT * 
                  FROM metric  
                  WHERE userid='".$tuserid."';";
        $result = $pdo->query($sql);
    }
    catch (PDOException $e) {
        $error =  $e->getMessage();
        include $errorpage;
        exit();
    }
    while ($row = $result->fetch()) {
                $metrics[] = array(
                    'id' => $row['id'],
                    'date' => $row['date'],
                    'value1' => $row['value1'],
                    'value2' => $row['value2'],
                     'value3' => $row['value3'],
                     'value4' => $row['value4']
        );
    }

然后我输出它:

<table border="1" cellpadding="2px">
 <thead>
      <tr>
          <th bgcolor="#CECECE">Date</th>
          <th bgcolor="#CECECE">Candidates Added</th>
          <th bgcolor="#CECECE">Candidates Edited</th>
          <th bgcolor="#CECECE">Notes Added</th>
          <th bgcolor="#CECECE">Candidates Forwarded</th>
      </tr>
   </thead>
   <tbody>
<?php   
    for ($i=0;$i<count($metrics);$i++){
    ?>
    <tr>
          <td><center><?php echo $metrics[$i]['date'] ?></center></td>
          <td><center><?php echo $metrics[$i]['value1'] ?></center></td>
          <td><center><?php echo $metrics[$i]['value2'] ?></center></td>
          <td><center><?php echo $metrics[$i]['value3'] ?></center></td>
          <td><center><?php echo $metrics[$i]['value4'] ?></center></td>
  </tr>

<?php   
    }
?>
</tbody>
</table>

这是输出的一个例子:

enter image description here

如何将数据从星期一到星期日分成几周?

1 个答案:

答案 0 :(得分:0)

将DAYOFWEEK()添加到您的查询中:

$sql   = "SELECT *, DAYOFWEEK(date_field) as DWNum
            FROM metric  
            WHERE userid='".$tuserid."';";

并添加将字段放在$metrics数组中的位置。

当你循环并构建表格时:

if($metrics[$i]['DWNum']==1) //1=Sunday
{
   echo "<tr><td colspan='5'>NEW WEEK</td></tr>";
}