0

mysql からメッセージを取得し、日付ごとにグループ化し、日付ごと に1 つのヘッダーを付けてリストビューに結果を表示しようとしています。

mysql から日付でグループ化し、desc タイムスタンプで並べ替える方法を見つけました。

PHP の while() 関数を使用して行が返されるため、日付ごとに 1 つのヘッダーのみを表示する方法について、私の心はブロックされています。誰かが光を当てることができますか?

これが私がこれまでに持っているものです。

$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 に答える