使用join和or_like在codeigniter上为几个表创建搜索引擎

时间:2017-05-02 05:48:11

标签: codeigniter search

//模型

function search($keyword){
    $this->db->select('*')->from('rf_barang');
    $this->db->join('brand', 'rf_barang.KODE_BRAND = brand.KODE_BRAND');
    $this->db->join('jenis', 'rf_barang.KODE_JENIS = jenis.KODE_jenis');
    $this->db->join('tipe', 'rf_barang.KODE_TIPE = tipe.KODE_tipe');
    $this->db->join('kategori', 'kategori.KODE_KATEGORI = kategori.KODE_kategori');
    $this->db->join('rf_gambar', 'rf_gambar.KODE_BARANG = rf_barang.KODE_barang');
    $this->db->or_like('rf_barang.KODE_BARANG', $keyword);
    $this->db->or_like('MODEL', $keyword);
    $this->db->or_like('NAMA_BRAND', $keyword);
    $this->db->or_like('NAMA_JENIS', $keyword);
    $this->db->or_like('NAMA_TIPE', $keyword);
    $this->db->or_like('NAMA_KATEGORI', $keyword);
    $this->db->group_by('rf_barang.KODE_BARANG');  
    $query = $this->db->get();
    return $query->result();
}

从我的查询中,它显示了我不需要的数据..如何仅显示我想要的数据?

1 个答案:

答案 0 :(得分:0)

$this->db->select('*')是选择查询返回的字段的方法。要指定字段,您可以在此处单独列出它们,而不是'*',其中包括查询中每个表的每个字段。

例如,如果您只想包含值rf_barang.KODE_BRANDkategori.KODE_KATEGORI,请写下:$this->db->select('rf_barang.KODE_BRAND, kategori.KODE_KATEGORI')

您也可以只包含其中一个表中的所有值,如下所示:$this->db->select('kategori.*')

这是对MySQL SELECT语句的引用:https://dev.mysql.com/doc/refman/5.7/en/select.html