簡體   English   中英

如何按日期列出記錄?

[英]How to list records by date?

您會看到我正在嘗試列出數據庫中表的記錄,但是我想通過以下方式進行操作:

  1. 首先,它必須顯示日期
  2. 然后應顯示該日期的所有記錄

在數據庫表中,我有4個字段:

id, task, date, time

例如,一天中有多個任務在不同的時間執行。 然后,我在數據庫中存儲了不同日期和不同時間的許多任務。 我想要的是每天列出它們。 請查閱數據庫,並顯示一個列表,其中首先顯示日期,然后顯示該日期完成的所有任務,然后顯示另一個日期,然后顯示該日期的所有任務,依此類推。

像這樣

那是我的PHP代碼

$obj = new Task();
$consult = $obj->Lists();

date_default_timezone_set("America/Mexico_City");
$dateActual = date("Y-m-d");

while ($result = $consult->fetch_object()) {

    echo "<button class='btn btn-default'>date = " . $result->date . "</button><br>";

    $consult2 = $obj->Lists2($dateActual);
    while($result2 = $consult2->fetch_object()) {
          echo "<span>". $result2->time ."</span><br>";
    }
    $dateActual = $result->date;
}

我對數據庫的查詢是:

public function Lists2($date) 
{
    global $conexion;

    $sql = "SELECT ar.*, date_format(ar.date, '%d/%m/%Y') as date, 
                   date_format(ar.time, '%r') as time, 
                    u.user as User 
            FROM task_recents ar 
                INNER JOIN user u ON ar.iduser = u.iduser 
            WHERE date = '$date' 
            ORDER BY ar.time DESC";
    $query = $conexion->query($sql);
    return $query;
}

public function Lists() 
{
    global $conexion;

    $sql = "SELECT ar.*, date_format(ar.date, '%d/%m/%Y') as date, 
                    date_format(ar.time, '%r') as time, 
                    u.user as User 
            FROM task_recents ar 
                INNER JOIN user u ON ar.iduser = u.iduser 
            ORDER BY ar.time DESC";
    $query = $conexion->query($sql);
    return $query;
}

結果是它向我顯示了重復的日期及其各自的記錄。

我想要達到的目標是這樣的:

在此處輸入圖片說明

我該怎么辦?

PD:我得到的結果是:

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

但是我不喜歡

只要列之間存在匹配項,INNER JOIN關鍵字就會從兩個表中選擇所有行。 如果“訂單”表中有與“客戶”中不匹配的記錄,則這些訂單將不會顯示!

以下查詢不應再生成重復的記錄

SELECT 
    ar.id,
    ar.task,
    date_format(ar.date, '%d/%m/%Y') as formattedDate, 
    date_format(ar.time, '%r') as formattedTime, 
    u.user as User 
FROM 
    task_recents ar 
LEFT JOIN 
    user u 
ON 
    u.iduser = ar.iduser 
WHERE 
    date = '$date' 
ORDER BY 
    ar.time 
DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM