0

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

我想出了如何从 mysql 中按日期分组并按 desc 时间戳排序。

我的想法是如何为每个日期只显示一个标题,因为行是使用 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)){
4

1 回答 1

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
}
于 2012-07-28T15:26:54.743 回答