Welcome Guest, Not a member yet? Register   Sign In
OR in codeigniter query..
#1

[eluser]Musaddiq Khan[/eluser]
Hi,
I want to generate SQL query through codeigniter function.
I have code as below.
Code:
$this->db->distinct();
$this->db->or_like('item.Model_Name',trim($search_key));
$this->db->or_like('item.Name',trim($search_key));
$this->db->or_like('item.sku_no',trim($search_key));
$this->db->or_like('item.SKU',trim($search_key));
  
$this->db->where('item.Is_Item <> ',0);
$this->db->where('item.Status','1');
  
$this->db->select('pkItemId,item.Name');
$this->db->limit($limit,$offset);
return $this->db->get('items')->result_array();
which generate the following query
Code:
SELECT DISTINCT `pkItemId`, `item`.`Name` FROM (`items`) WHERE `item`.`Is_Item` <> 0 AND `item`.`Status` = '1' AND `item`.`Model_Name` LIKE '%S1S38R%' OR `item`.`Name` LIKE '%S1S38R%' OR `item`.`sku_no` LIKE '%S1S38R%' OR `item`.`SKU` LIKE '%S1S38R%'

But I want that the OR clauses should be grouped as below.
Code:
SELECT DISTINCT `pkItemId`, `item`.`Name` FROM (`items`) WHERE `item`.`Is_Item` <> 0 AND `item`.`Status` = '1' AND (`item`.`Model_Name` LIKE '%S1S38R%' OR `item`.`Name` LIKE '%S1S38R%' OR `item`.`sku_no` LIKE '%S1S38R%' OR `item`.`SKU` LIKE '%S1S38R%')
#2

[eluser]Aken[/eluser]
Same problem AGAIN.
#3

[eluser]Musaddiq Khan[/eluser]
I've searched and found some sort of solution.
Code:
$str = "(item.Model_Name LIKE '%$search_key%' OR item.Name LIKE '%$search_key%' OR item.sku_no LIKE '%$search_key%' )";
$this->db->where($str);
$this->db->where('item.Status','1');
$this->db->where('item.Is_Item <> ',0);
return $this->db->get('item')->result_array();

wich generate the following query in the structure which is needed.
Code:
SELECT DISTINCT `pkItemId`, `item`.`Name`, `item`.`url_slug`, FROM (`items`)  WHERE (item.Model_Name LIKE '%S1S38R%' OR item.Name LIKE '%S1S38R%' OR item.sku_no LIKE '%S1S38R%') AND `item`.`Is_Item` <> 0 AND `item`.`Status` = '1'




Theme © iAndrew 2016 - Forum software by © MyBB