我試圖編寫CodeIgniter上編寫的網站的搜索功能,但在模型中的連接語句有問題。codeigniter加入多行,其中
控制器將一系列搜索條件傳遞給模型函數: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)我需要一個WHERE子句中的sales_sizes加入。現在,它加入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
)
)
您是否嘗試過使用sales_sizes進行分組? –
是的,沒有工作... – 2083
我認爲,爲了每次銷售返回一定數量的尺寸,您實際上必須通過sale_id,sale_category和sale_price進行分組。然而,這隻會返回大小不同但大小不一但其他列相同的記錄。爲了獲得你想要的數組格式,你必須做一些後處理,並根據返回的結果將它們放入數組中。 –