gpt4 book ai didi

php - 根据另一个表中最后使用的结果对表结果进行排序

转载 作者:行者123 更新时间:2023-11-29 16:35:39 25 4
gpt4 key购买 nike

我的网站上有一个页面,可以打印数据库中的所有客户名称和 ID,以便在向另一个数据库报告已完成的工作时使用。

我想要做的是让这个函数对客户进行排序,以便我按照客户上次在报告中使用的时间顺序对列表进行排序。最新的报告将使该报告客户在我的结果客户中排名第一。

我正在使用 Codeigniter,我的 Controller 有以下代码:

$data['reports'] = $this->db->get('reports');

$data['customers'] = $this->db->get('customers');

$this->load->view('list', $data);

在我看来添加这个:

foreach($customers->result() as $customer){ 
echo "<option value='".$customer->id."'>".$customer->name."</option>";
}

我添加了一张图片,希望能让这更容易理解。

enter image description here

更新#1:

所以我在下面的评论中得到了帮助,解决了这个问题:

Controller :

$this->db->group_by('customer');
$this->db->order_by('date', DESC);
$data['reports'] = $this->db->get('reports');

$data['customers'] = $this->db->get('customers');

$this->load->view('list', $data);

查看:

foreach($reports->result() as $rep){ 
foreach($customers->result() as $customer){
if($rep->customer == $customer->id){
echo "<option value='".$customer->id."'>".$customer->name."</option>";
}
}
}

这为我提供了客户按照报告日期的顺序回显一次的信息。

enter image description here

但是!这并没有按照我的预期工作。因为,是的,它按日期顺序排序,但它首先对报告进行分组,因此它采用最后出现并出现在回显中的日期。这将是该客户第一次记录的日期。与我想要的相反。

我还没有找到一种方法来更改分组依据的处理顺序。如果这可能的话..

此外,它不会接收任何没有报告的客户。

最佳答案

这可能不是问题的答案,但它至少使我的项目成功。我没有使用 SQL 命令从报告中选取最后日期并将其与客户列表结合起来,而是在另一端开始使用一种新方法。

我有另一个项目,我需要对网站上的帖子进行排序,并且每次移动时我都会将帖子设置为特定的排序值。

我使用了它的一个变体并将其插入到这个问题上。因此,现在当我做报告时,我还将当前时间戳插入客户的“last_report”中,所以现在当我检查客户列表时,我什至不需要调用报告,而只需按可以的last_report排序用 ASC 和 DESC 订购。

这可能是对数据库的错误使用,但它有效,并且整个周期中数据库问题的总数仍然相同。

关于php - 根据另一个表中最后使用的结果对表结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53615047/

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