如何显示行的标题返回MySQL按日期列表视图分组返回

时间:2012-07-28 15:22:03

标签: php mysql listview date timestamp

我正在尝试从mysql中提取消息,按日期对它们进行分组,并在列表视图中显示结果,并为每个日期显示一个标题。

我想出了如何按日期从mysql分组并按desc timestamp顺序排序。

我的想法是如何仅为每个日期显示一个标题,因为使用php中的while()函数返回行。有人可以解释一下吗?

这是我到目前为止所拥有的。

$st = $this->db->prepare("SELECT date(timestamp) as date, message, user_id, target_id, msg_id, msg_type, target_name 
FROM message  
WHERE (user_id=? OR target_id=?)  
GROUP BY date  
ORDER BY timestamp DESC");  
            $st->bindParam(1, $y['user_id'], PDO::PARAM_INT);
            $st->bindParam(2, $y['user_id'], PDO::PARAM_INT);
            $st->execute();

            echo'<ul data-role="listview" id="message_listview">';

            if($st->rowCount() < 1){
                echo'You have no messages';
                exit();
            }       

            while($row = $st->fetch(PDO::FETCH_OBJ)){

1 个答案:

答案 0 :(得分:0)

$date = ''; // initialize $date with an invalid value
while($row = $st->fetch(PDO::FETCH_OBJ))
{
    if($date != $row['date'])
    {
        // display date only when it changes
        $date = $r['date'];
        echo $date;
    }
    // display the other fields here
}