我的 MySQL 表
id, message, date
日期是时间戳
我希望它像这样在 PHP 中得到回应:
Tuesday 20th August 2013
- message 3
- message 2
Monday 19th August 2013
- message 1
我不知道我将如何对结果进行分组并每天回显它们
SQL 查询
select group_concat(message), date from table group by date order by date
现在在代码中,您可以获得与日期相同的行数,并且对于每个日期消息,例如以逗号分隔的字符串(日期将在时间戳中 - 您可以在代码或 mysql 查询中对其进行格式化)
2013 年 8 月 20 日 | 消息 3,消息 1
2013 年 8 月 19 日 | 消息 2,消息 4
循环遍历每条记录并打印日期,然后用 ,(逗号)拆分消息并打印
<?php
$query = mysql_query("SELECT id,message FROM messages ORDER BY date DESC");
$data = array();
while($row = mysql_fetch_assoc($query)){
$date = date("F j,Y",strtotime($row['date']));
if(array_key_exists($date,$data)){
$data[$date][] = array(
'id' => $row['id'],
'message' => $row['message'],
);
}else{
array_push($data,$data[$date]);
$data[$date][] = array(
'id' => $row['id'],
'message' => $row['message'],
);
}
}
echo '<pre>';
print_r($data);
?>
SELECT id,message FROM messages ORDER BY date DESC
您已经编写了一个循环来打印消息,并且将条件写入“日期”不应再次重复。