php – 如何在CodeIgniter中的两个连续查询之间重置/清除顺序?
发布时间:2020-12-13 22:02:13 所属栏目:PHP教程 来源:网络整理
导读:我试图在CodeIgniter中调用2个连续的查询,第一个查询有一个order-by子句.问题是,CodeIgniter正在尝试对第二个查询使用order-by子句并抛出错误. 代码看起来像这样: ... $sql = $this-db-get_where('expenses',array('category_id' = $category_id)); $this-d
我试图在CodeIgniter中调用2个连续的查询,第一个查询有一个order-by子句.问题是,CodeIgniter正在尝试对第二个查询使用order-by子句并抛出错误.
代码看起来像这样: ... $sql = $this->db->get_where('expenses',array('category_id' => $category_id)); $this->db->order_by("date","asc"); $data = $sql->result_array(); foreach($data as $expense_rec) { $expense_id = $data['expense_id']; $sql2 = $this->db->get_where('expense_details',array('expense_id' => $expense_id)); $detail_rec = $sql2->result_array(); } ... 对于第二个查询,该脚本将引发以下错误: Unknown column 'date' in 'order clause' SELECT * FROM (`expense_details`) WHERE `expense_id` = '4' ORDER BY `date` asc 有没有办法在调用第二个查询之前重置order-by? 我正在使用CodeIgniter 1.7 附:我知道我可以将两个查询合并为一个,但我很想知道上面的代码是否有办法在CodeIgniter中工作. 解决方法
运行查询是重置它的原因.
您在运行查询后放置order_by(),因此它不会影响初始查询,但它会开始构建下一个查询. 代替… $sql = $this->db->get_where('expenses',array('category_id' => $category_id)); $this->db->order_by("date","asc"); $data = $sql->result_array(); 做这个… $this->db->order_by("date","asc"); $sql = $this->db->get_where('expenses',array('category_id' => $category_id)); $data = $sql->result_array(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |