[英]How to list records by date?
您會看到我正在嘗試列出數據庫中表的記錄,但是我想通過以下方式進行操作:
在數據庫表中,我有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.