1

我的 MySQL 表

id, message, date

日期是时间戳

我希望它像这样在 PHP 中得到回应:

Tuesday 20th August 2013 
- message 3
- message 2

Monday 19th August 2013 
- message 1

我不知道我将如何对结果进行分组并每天回显它们

4

3 回答 3

2

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

循环遍历每条记录并打印日期,然后用 ,(逗号)拆分消息并打印

于 2013-08-20T11:57:55.083 回答
0
<?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);
?>
于 2013-08-20T12:50:31.263 回答
0

SQL 查询

SELECT id,message FROM messages ORDER BY date DESC

PHP端

您已经编写了一个循环来打印消息,并且将条件写入“日期”不应再次重复。

于 2013-08-20T11:51:01.197 回答