2つの別々のクエリからの2つの配列を結合したいと思います。製品を2つの別々のテーブルに保存しました。1つは名前、説明、価格などの一般的な情報用です。もう1つは、さまざまなディテール、つまり衣料品のサイズと色です。
したがって、私のデータベースは、製品に対して次のように構成されています。
products table:
p_id | title | descr | etc
product_attrs table:
attr_id | products.p_id | name | value
ここで、名前と値はname = Size value=Largeになります。
次のように、製品のすべての詳細を1つのクエリで取得しようとすると、次のようになります。
this->db->select('products.title,
p.description,
p.price,
p.stock,
p.name,
p.value');
$this->db->from('p');
$this->db->where('p.p_id', $id);
$this->db->join('product_attrs', 'product_attrs.product_id = p.p_id', 'inner');
$result = $this->db->get();
return $result->result_array();
その製品のproduct_attributesテーブルにある名前/値のペアの数が入力された配列を取得します。したがって、製品に5つの属性がある場合、次のようにすべてを5回戻します。
Array ( [0] => Array ( [title] => Modest Swimsuit - Full body [description] => UV +50 Protection - Chlorine Resistant - Water Resistant - Quick Drying - Maximum Breathe Ability- Sea Water Resistant [price] => 59.95 [stock] => 20 [name] => Brand [value] => Modestly Active Swimwear ) [1] => Array ( [title] => Modest Swimsuit - Full body [description] => UV +50 Protection - Chlorine Resistant - Water Resistant - Quick Drying - Maximum Breathe Ability- Sea Water Resistant [price] => 59.95 [stock] => 20 [name] => Colour [value] => Black and Light Blue ) [2] => Array ( [title] => Modest Swimsuit - Full body [description] => UV +50 Protection - Chlorine Resistant - Water Resistant - Quick Drying - Maximum Breathe Ability- Sea Water Resistant [price] => 59.95 [stock] => 20 [name] => size [value] => small ) [3] => Array ( [title] => Modest Swimsuit - Full body [description] => UV +50 Protection - Chlorine Resistant - Water Resistant - Quick Drying - Maximum Breathe Ability- Sea Water Resistant [price] => 59.95 [stock] => 20 [name] => size [value] => medium ) [4] => Array ( [title] => Modest Swimsuit - Full body [description] => UV +50 Protection - Chlorine Resistant - Water Resistant - Quick Drying - Maximum Breathe Ability- Sea Water Resistant [price] => 59.95 [stock] => 20 [name] => size [value] => large ) )
そこで、テーブルごとにクエリを分けて、それぞれ1つの結果セットを取得できるようにすることにしました。ただし、両方を組み合わせて、データを1つの配列としてコントローラーに戻し、ビューに表示できるようにします。これが私が2つのテーブルを照会した方法です。両方の結果を組み合わせる方法が必要です。
$this->db->select('p.title,
p.description,
p.price,
p.stock');
$this->db->from('p');
$this->db->where('p_id', $id);
$result = $this->db->get();
$this->db->select('name, value');
$this->db->from('product_attrs');
$this->db->where('p_id', $id);
$result2 = $this->db->get();
誰か助けていただければ幸いです。ありがとうございました
編集:
私は今php.netでarray_merge()関数を見ていますが、これを行うと:
$result = $this->db->get();
$array1 = $result->result_array();
$result2 = $this->db->get();
$array2 = $result2->result_array();
$data = array_merge($array1,$array2);
return $data;
複数の配列を取得します:
Array ( [0] => Array ( [title] => Modest Swimsuit - Full body [description] => UV +50 Protection - Chlorine Resistant - Water Resistant - Quick Drying - Maximum Breathe Ability- Sea Water Resistant [price] => 59.95 [stock] => 20 ) [1] => Array ( [name] => Brand [value] => Modestly Active Swimwear ) [2] => Array ( [name] => Colour [value] => Black and Light Blue ) [3] => Array ( [name] => size [value] => small ) [4] => Array ( [name] => size [value] => medium ) [5] => Array ( [name] => size [value] => large ) )
私のビューで上記の配列から値を取得する方法はありますか?