gpt4 book ai didi

php - 对包含 SQL 查询数据的表中的非 SQL 表列进行排序

转载 作者:行者123 更新时间:2023-11-29 21:09:43 25 4
gpt4 key购买 nike

下面我将代码精简为简化版本。我正在存储 SQL SELECT 结果:

  • 姓氏(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通过简单比较date_added来计算到当前日期,按 days_on_list 排序应该具有与按 date_added 排序完全相反的效果.

换句话说,您实际上不需要按 days_on_list 排序。如果用户选择days_on_list作为排序列,只需使用 ORDER BY date_added (ASC/DESC 方向相反)。

关于php - 对包含 SQL 查询数据的表中的非 SQL 表列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36487378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com