我正在尝试为 CodeIgniter 上编写的网站编写搜索功能,但模型中的 join 语句有问题。
控制器将一组搜索条件传递给模型函数: get_sales($search_criteria);
function get_sales($search_criterie){
$this->db->join('sales_prices', 'sales_prices.sale_id = sales.sale_id', 'left');
$this->db->join('sales_sizes', 'sales_sizes.sale_id = sales.sale_id', 'left');
$query = $this->db->get_where('sales', $search_criterie);
$sale_data = $query->result_array();
}
我遇到了两个问题:
1) 我需要 sales_sizes 连接中的 WHERE 子句。现在它加入 sales_sizes.sale_id ON sales.sale_id 但我希望能够通过 $search_criteria 数组按大小过滤。我怎样才能做到这一点?
2)每个销售通常有多种尺寸,我希望查询的输出格式如下:
Array
(
[sale_id] => 1
[sale_category] => shoes
[sale_price] => 29.99
[sale_sizes] => Array
(
[0] => 10
[1] => 10.5
[2] => 11
)
)
我尝试了一些 foreach 循环来格式化输出,但无法让它工作。希望有人可以提供帮助。
更新:
如何将以下查询结果处理为上述格式?
Array
(
[0] => Array
(
[sale_id] => 1
[sale_category] => shoes
[sale_price] => 29.99
[sale_size] => 10
)
[1] => Array
(
[sale_id] => 1
[sale_category] => shoes
[sale_price] => 29.99
[sale_size] => 10.5
)
[2] => Array
(
[sale_id] => 1
[sale_category] => shoes
[sale_price] => 29.99
[sale_size] => 11
)
)