簡體   English   中英

活動記錄codeigniter 2選擇

[英]Active records codeigniter 2 select

我想將數據庫中的數據顯示到select2服務器端,我想將我的表合並到一個具有相同字段的表中,但是失敗了,這是我的模型:

$json = [];
if(!empty($this->input->get("q"))){
    $this->db->like('nama', $this->input->get("q"));    
    $query = $this->db->select('idmuzakki as id,nama as text')
            ->limit(10)
            ->get("muzakki");
    $query = $this->db->select('idcorporate as id, nama as text')
            ->limit(10)
            ->get("corporate"); 
$json = $query->result();
}

echo json_encode($json);

如何將2個表合並為1個結果,且select2服務器端具有相同的字段(如id和text)?

進行2個查詢,然后將結果加入正在使用的對象(或數組)中,或者使用UNION。

CI在查詢生成器中沒有此選項,因此:

$this->db->query('(SELECT idmuzakki as id,nama as text FROM muzakki  WHERE nama LIKE \'%$this->input->get("q")%\' LIMIT 10)
    UNION ALL
    (SELECT idcorporate as id, nama as text FROM corporate WHERE nama LIKE \'%$this->input->get("q")%\' LIMIT 10)');
$result = $query->result();
$json = json_encode($result);

UNION ALL將保留重復項,如果您不希望這樣做,則只需使用UNION

如果要合並對象,請將每個查詢命名為不同的變量,然后使用

$this->db->like('nama', $this->input->get("q"));    
$query1 = $this->db->select('idmuzakki as id,nama as text')
        ->limit(10)
        ->get("muzakki");
        ->result();
$query2 = $this->db->select('idcorporate as id, nama as text')
        ->limit(10)
        ->get("corporate")
        ->result(); 
$result = array_merge($query1, $query2);
$json = json_encode($result);

在這兩種方法中,聯合可能好得多...

這都是偽代碼(雖然應該可以),我沒有mysql或ci方便的atm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM