【发布时间】:2015-12-09 04:59:00
【问题描述】:
我被困在一个 php foreach 循环中。我想做的是按年获得结果,然后是当年的每个月。
$sql = "SELECT DATE_FORMAT(datestart, '%M') as month,
MONTH(datestart) AS m,
YEAR(datestart) AS year,
holiday.Id,
employeeId,
datestart,
dateEnd,
DATE_FORMAT(holiday.dateEnd,'%D %M, %Y') AS end,
DATE_FORMAT(holiday.datestart,'%D %M, %Y') AS startit,
DATE_FORMAT(holiday.datestart,'%d-%m-%Y') AS st,
DATE_FORMAT(holiday.datestart,'%d-%m-%Y') AS en,
CONCAT(employees.empFirst,' ',employees.empLast) AS employee,
DATE_FORMAT(holiday.datestart,'%d-%m-%Y %H:%i') AS start
From holiday
LEFT JOIN employees ON holiday.employeeId = employees.empId
ORDER BY year asc, m, datestart
";
$result = $mysqli->query($sql);
$res = $mysqli->query($sql);
$months = array();
while ($row = mysqli_fetch_assoc($result)) {
$months[$row['month']][] = $row;
}
foreach($months as $months => $month) {
echo '<b>Month '.$months. '</b><br>';
foreach($month as $item){
echo $item['employee']. ' - '
.$item['startit'].' - '.$item['end'].'<br/>';
}
}
我得到的结果是月份,然后是项目。
- 一月 商品详情
- 三月 商品详情
- 十月 商品详情
我追求的是:
- 2015
- 一月
- 商品详情
- 三月
- 商品详情
- 十月
- 商品详情
- 2016
- 一月
- 列表项
希望有人可以帮忙。谢谢
【问题讨论】:
-
你能
print_r($rows);吗?
标签: php mysql loops mysqli foreach