CI多个像条件activerecord

时间:2016-05-19 06:45:27

标签: mysql codeigniter activerecord sql-like

我有以下Active Record查询。

public function select_kd_barang_detail($kd = null) {
    $this->db->select("a.no_barang, a.kd_barang, b.jenis, c.ukuran, d.merk, e.nama_barang");
    $this->db->from("t_barang_detail a, t_barang_jenis b, t_barang_ukuran c, t_barang_merk d, t_barang e");
    $where = "a.jenis = b.id_jenis AND a.ukuran = c.id_ukuran AND a.merk = d.id_merk AND a.kd_barang = e.kd_barang";
    $this->db->where($where);
    if ($kd != null) {
        $this->db->like("a.kd_barang", $kd);
        $this->db->or_like("e.nama_barang", $kd);
    }

    return $this->db->get();
}

我一直尝试使用

$this->db-where("(a.kd_barang LIKE $kd OR e.nama_barang LIKE $kd)");

$this->db->or_like(array('a.kd_barang' => $kd, 'e.nama_barang' => $kd));

但结果总是错误的。

2 个答案:

答案 0 :(得分:1)

这个问题解决了。

我正在使用此代码

$this->db->where("(a.kd_barang LIKE '%$kd%' OR e.nama_barang LIKE '%$kd%')");

答案 1 :(得分:0)

你可以这样工作:

if ($kd != null) {
        $this->db->or_where("(a.kd_barang LIKE '$kd' OR e.nama_barang LIKE '$kd')");
    }