2016-06-29 5 views
0

私は検索クエリを持っています。すべての類似キーワードを検索すると、一致する条件でレコードが表示されますが、where節は動作しません。あなたはCodeIgniterのwhere節が同様のクエリで動作しない

$this->db->group_start(); 
$this->db->like('address', $adress_all[0]); 
$this->db->or_like('game', $this->session->userdata('skills')); 
$this->db->or_like('gender', $this->session->userdata('coach')); 
$this->db->or_like('Positions', $this->session->userdata('position')); 
$this->db->group_end(); 
$this->db->where('type', 'private'); 
$sql = $this->db->get('coach'); 

この作品希望(あなたのDBにテストする必要があります)

See Doc

+0

この 'エコーます$ this-> DB-> last_query()' ' –

+0

ます$ this-> DB->のように()は' '列LIKE 'your_string' に変換され、使用して、クエリの出力を追加してください'節を追加する必要はありません。なぜなら、 – Riad

+0

の部分を追加する必要がないので、専用のコーチしか表示されないので、私はwhere句を使用しています。 –

答えて

1

Grouping LIKEを使用する必要が

$position = $this->session->set_userdata('position', $this->input->post('position')); 
$adress_all = explode(",", $this->session->userdata('address')); 
$this->db->like('address', $adress_all[0]); 
$this->db->or_like('game', $this->session->userdata('skills')); 
$this->db->or_like('gender', $this->session->userdata('coach')); 
$this->db->or_like('Positions', $this->session->userdata('position')); 
$this->db->where('type', 'private');//all other type coaches is also showing up 
$sql = $this->db->get('coach'); 
+0

あなたの岩!あなたのための親指:) –

+0

これは直接SQLクエリであるので、このように記述することができます: '$ this-> db-> where("プライベート "AND(%like OR ... ...););););); しかし、問題解決... :) – Riad

+0

オブジェクト指向クエリ間の文として 'like'を使用してオブジェクト指向クエリのルールを破棄しますか?つまり、$ this-> db-> like()または@Rajが行ったように、特に問題はないでしょうか? – Anant

2

は物事の下に試してみてください。

$this->db->where('type', 'private');//all other type coaches is also showing up 
$this->db->where("(address LIKE '%". $adress_all[0]."%' OR game LIKE '%".$this->session->userdata('skills')."%' OR gender LIKE '%".$this->session->userdata('coach')."%' OR positions LIKE '%".$this->session->userdata('position')."%')",null,false); 
$sql = $this->db->get('coach'); 
+0

これはクエリの出力結果が見つかりません SELECT * FROM 'coach' WHERE'アドレス 'LIKE '%2207ブロードウェイ%' ESCAPE '!' ESCAPE '!')AND 'type' = ''% '%'% '%'% '%'%プライベート 'ゲームとポジションは行進しましたが、結果を返すことはありません –

+0

が更新されました。あなたはグループの列にアドレスを入れておく必要があります – Riad

関連する問題