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();
}
私は2つの問題に直面しています:
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
)
)