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