我正在尝试从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)){
答案 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
}