0
我有一個與codeigniter中的排序$_post
數據ptoblem。Codeigniter排序數據
控制器:
public function filter(){
...
$this->model->method($this->request->post);
...
}
型號: $keys
= $_POST
-data
public function($keys) {
$this->db->select('*');
$this->db->from('table1 t1');
$this->db->join('table2 t2', 't2.id = t1.id', 'left');
if(!empty($keys['value1']){
$this->db->where('t1.column', $keys['value1']);
}
if(!empty($keys['value2']){
$this->db->where('t1.column', $keys['value2']);
}
if($keys['value3'] || $keys['value4'] || $keys['value5']){
$array = array($keys['value3'], $keys['value4'], $keys['value5']);
$this->db->where_in('t2.column', $array);
}
$query = $this->db->get()->result();
return $query;
}
table1的
id value1 valu2
1 23 24
2 12 15
table2中
t1_id value (this contain value of value3, value4, value5)
2 7
2 19
2 13
2 3
1 7
1 13
1 3
它的工作原理,但如果設置了value3..value5
,然後選擇所有值,而不是優先table1
值,我需要做的值1和數值2它一直是優先級之前value3..value5
Sry基因爲我的英語不好,TNX!
例如: products_table
product_id value1 value2
1 13 9
2 13 9
3 14 10
product_to_atributes
product_id atribute_id
1 2
1 3
1 4
2 3
2 4
product_atributes
atribute_id atribute_name
2 atr_name
3 atr_name2
4 atr_name3
我需要的產品的選擇列表,其中value1 = '13'
和value2 = '9'
and product_to_atributes.atribute_id IN(2,4)
不工作,'$這個 - > DB-> or_where_in()',我得到了所有的記錄列表 –
如果使用' - > where('t2.column',$ keys ['value3']);'和' - > where('t2.column',$ keys ['value4']],您可以決定使用or_where或者and_where –
);'和' - >其中('t2.column',$ keys ['value5']);' 無效 - 結果爲空 't2.column'它是表中的一個字段。 if value is one - working'$ keys ['value3']' if value is multi - not –