2016-08-23 29 views
0

球員我有4表uhd_voucher_menuuhd_menuuhd_voucher_variant_menuuhd_variant_menu笨活性記錄了與加入4名錶

其中uhd_voucher_menuuhd_menumenu_id連接,比uhd_voucher_variant_menuuhd_voucher_menuvoucher_menu_id最後,uhd_variant_menuvoucher_variant_menu連接連接variant_menu_id

這是我的代碼我如何獲取數據:

 $this->db->select("uhd_voucher_menu.voucher_id,uhd_menu.menu_name,uhd_voucher_menu.qty,uhd_variant_menu.variant_name,uhd_voucher_menu.voucher_menu_id"); 
     $this->db->from("uhd_voucher_menu"); 
     $this->db->join("uhd_menu","uhd_menu.menu_id = uhd_voucher_menu.menu_id"); 
     $this->db->join("uhd_voucher_variant_menu","uhd_voucher_variant_menu.voucher_menu_id = uhd_voucher_menu.voucher_menu_id","left"); 
     $this->db->join("uhd_variant_menu","uhd_variant_menu.variant_menu_id = uhd_voucher_variant_menu.variant_menu_id","left"); 
     $this->db->where("voucher_id",$data["voucher"]["voucher_id"]); 
     $this->db->where("uhd_menu.restaurant_id",$restaurant_id); 
     $res = $this->db->get()->result_array(); 

從積極條記錄將回到這個數據:

[0]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "2" 
    ["variant_name"]=> 
    string(5) "Spicy" 
    ["voucher_menu_id"]=> 
    string(1) "3" 
} 
[1]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "2" 
    ["variant_name"]=> 
    string(6) "Medium" 
    ["voucher_menu_id"]=> 
    string(1) "3" 
} 
[2]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "1" 
    ["variant_name"]=> 
    string(4) "Sour" 
    ["voucher_menu_id"]=> 
    string(1) "4" 
} 
[3]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "1" 
    ["variant_name"]=> 
    string(6) "Medium" 
    ["voucher_menu_id"]=> 
    string(1) "4" 
} 
[4]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(14) "Red Crown Crab" 
    ["qty"]=> 
    string(1) "2" 
    ["variant_name"]=> 
    NULL 
    ["voucher_menu_id"]=> 
    string(1) "1" 
} 
[5]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(8) "Omellete" 
    ["qty"]=> 
    string(1) "3" 
    ["variant_name"]=> 
    NULL 
    ["voucher_menu_id"]=> 
    string(1) "2" 
} 

你看到golden_salmon具有相同voucher_menu_id被退回兩次

我想如果voucher_menu_id是一樣的,所以從這個數據:

[0]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "2" 
    ["variant_name"]=> 
    string(5) "Spicy" 
    ["voucher_menu_id"]=> 
    string(1) "3" 
} 
[1]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "2" 
    ["variant_name"]=> 
    string(6) "Medium" 
    ["voucher_menu_id"]=> 
    string(1) "3" 
} 

我想,數據恢復成爲本:

[0]=> 
array(5) { 
    ["voucher_id"]=> 
    string(1) "1" 
    ["menu_name"]=> 
    string(13) "Golden Salmon" 
    ["qty"]=> 
    string(1) "2" 
    ["variant_name"]=> 
    array(2){ 
    [1]=> 
    string(5) "Spicy" 
    [2]=> 
    string(6) "Medium" 
    } 
    ["voucher_menu_id"]=> 
    string(1) "3" 
} 

同其他golden_salmon具有相同voucher_menu_id4

我想variant_name被成爲陣列所以,如果用相同的voucher_menu_id數據不會調用兩次

傢伙你能幫助我如何執行數據因爲我想要的? 謝謝(:

回答

-1

你必須,我稍微修改您使用組查詢:

$this->db->select("uhd_voucher_menu.voucher_id,uhd_menu.menu_name,uhd_voucher_menu.qty,GROUP_CONCAT(uhd_variant_menu.variant_name SEPARATOR ',') AS variants,uhd_voucher_menu.voucher_menu_id"); 
    $this->db->from("uhd_voucher_menu"); 
    $this->db->join("uhd_menu","uhd_menu.menu_id = uhd_voucher_menu.menu_id"); 
    $this->db->join("uhd_voucher_variant_menu","uhd_voucher_variant_menu.voucher_menu_id = uhd_voucher_menu.voucher_menu_id","left"); 
    $this->db->join("uhd_variant_menu","uhd_variant_menu.variant_menu_id = uhd_voucher_variant_menu.variant_menu_id","left"); 
    $this->db->where("voucher_id",$data["voucher"]["voucher_id"]); 
    $this->db->where("uhd_menu.restaurant_id",$restaurant_id); 
$this->db->group_by("uhd_voucher_menu.voucher_id"); 
    $res = $this->db->get()->result_array(); 

,我們可以轉換逗號分隔值陣列查詢輸出後

嘗試發佈的結果......

+0

其唯一的回報1數據 – Kelvin

+0

使用發佈你生成的查詢, 回聲$這個 - > DB-> last_query(); –