下面我已將我的代碼簡化爲簡化版本。我存儲SQL SELECT結果:在包含來自SQL查詢的數據的表中對非SQL表列進行排序
- 姓氏(DLName中)
- 類別(類別)
- 日期這個數據被添加到數據庫(DATE_ADDED)
- 客戶名稱(客戶端)
我在SQL SELECT之外添加了一個名爲'days_on_list'的附加字段。該字段顯示數據添加到數據庫以來的天數,使表格輸出5列用戶數據。所有5個柱子都應是可拆卸的。
我正在使用服務器端JSON,並已成功地將此顯示到表中,並對5列中的4列進行排序。 問題是我無法對'days_on_list'字段進行排序,因爲包含SQL代碼的PHP文件只允許我對選擇查詢中的4個字段進行排序。有沒有辦法讓'days_on_list'列在表格中排序?我知道我可以將這個字段添加到sql表中,但是我將不得不在服務器上運行一個預定的事件來更新這個每日(我不舒服)。
是否有另一種方式允許這種靈活的表格排序?
對於問題標題(可能令人困惑)感到抱歉,我無法將此置於問題中。
/*SQL CODE ABOVE HERE STORES SELECT RETURNS IN $result*/
$cart = array();
$i = 0; //index the entries
// get variables from sql result.
if ($num_rows > 0) { //if table is populated...
while ($row = mysqli_fetch_assoc($result)) {
//calculate days on list by getting the number of days from
//the 'date_added' to today
$date1 = date_create($row['date_added']);
$today = date_create(date("d-m-Y"));
$interval = date_diff($date1, $today);
$doty = $interval - > format("%a");
$cart[$i] = array(
"dlname" => htmlspecialchars($row['dlname']),
"category" => htmlspecialchars($row['category']),
"date_added" => htmlspecialchars($row['date_added']),
"client" => htmlspecialchars($row['client']),
"days_on_list" => $doty, //date_added to now
);
$i = $i + 1; //add next row
}
//encoding the PHP array
$json_server_pagination_data = array(
"total" => intval($num_rows),
"rows" => $cart, //array data
);
}
echo json_encode($json_server_pagination_data);
當我對days_on_list列進行排序時,它將返回一個空表格,並在我對其他列中的一個進行排序時返回數據。我認爲只要表可以訪問json輸出中的所有數據,那麼按days_on_list排序的行爲將與其他列完全相同。 –
我處於奇怪的情況下,我的排序工作的4列(除days_on_list以外),我在SQL查詢中添加一個ORDER BY [列在這裏]。但是因爲days_on_list存在於查詢之外,所以我得到一個空表 –
WOW!有效!非常感謝你的朋友! –