2017-09-06 12 views
-1

複数の列に存在するかどうかを確認する必要があります。CodeIgniterのクエリビルダ - エントリのような私たちは、複数の属性を持つテーブルを持っている

TABLE_ATTRIBUTES
ID、   カラー、サイズ、重量
111、レッド、  XL      ヌル
112、ヌル、    SM  

すべての列の属性を調べることで、モデル内に行IDを返すメソッドを作成したい。たとえば、「緑」、「SM」、「9」を渡したいとします。

このCodeigniter DBクエリを構築する最も良い方法は何ですか?

私はこのような何かを持っているが、それは働いていない:あなたはおそらく少しそれを変更したいので

$this->db->select('id'); 
->or_where($color === NULL ? 'color IS NOT NULL' : 'color =', $color) 
->or_where($size === NULL ? 'size IS NOT NULL' : 'size =', $size) 
->or_where($weight === NULL ? 'weight IS NOT NULL' : 'weight =', $weight_10) 
$row = $this->db->get('product')->row(); 

答えて

0

あなたの最初のor_whereはちょうどマニュアルに従ってwhere次のようになります。

$this->db->select('id'); 
->where($color === NULL ? 'color IS NOT NULL' : 'color =', $color) 
->or_where($size === NULL ? 'size IS NOT NULL' : 'size =', $size) 
->or_where($weight === NULL ? 'weight IS NOT NULL' : 'weight =', $weight_10) 
$row = $this->db->get('product')->row(); 

参照してください。このドキュメントについての$this->db->or_where()については、 https://www.codeigniter.com/userguide3/database/query_builder.html

関連する問題