活动记录codeigniter 2选择

时间:2017-02-08 10:13:24

标签: php mysql codeigniter

我想将我的数据从数据库显示到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)?

1 个答案:

答案 0 :(得分:1)

要么进行2次查询,要将结果加入到您正在使用的对象(或数组)中,要么使用UNION。

CI对查询构建器没有这个选项,所以:

$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);

UNION ALL将保留重复项,如果您不想要这样,那么只需使用UNION

如果要合并对象,请将每个查询命名为另一个变量,然后使用

ng-class="{'active':true}"

在两种方法中,联盟可能更好......

这是所有伪代码(应该可以工作),我没有mysql或ci方便的atm

相关问题