2015-09-01 3 views
0

У меня есть список полей ввода и два запроса.как удалить Дубликат, где условие в codeigniter

Я хочу запустить несколько запросов для различных типов записей с одинаковыми WHERE условиями

<?php 
$tbname='xyz'; 
$field1=$this->input->post('field1'); 
$field2=$this->input->post('field2'); //I have list of inputs like this 
$field3=$this->input->post('field3'); 
$order=$this->input->post('order'); 
$sort=$this->input->post('sort'); 
$pagination=true; 
$fields = "x,y,z"; 
$this->db->select($fields); // select list of table column 
// Creating where condition 
$this->db->order_by($order ,$sort); 

(!empty($field1)) ? $this->db->where('field1', $field1) : ''; 
(!empty($field2)) ? $this->db->where('field2', $field2) : ''; 
(!empty($field3)) ? $this->db->where('field3', $field3) : ''; 
$data['scount']=$this->db->count_all_results($tbname); 


// Creating where condition again 
$this->db->order_by($order ,$sort); 

(!empty($field1)) ? $this->db->where('field1', $field1) : ''; 
(!empty($field2)) ? $this->db->where('field2', $field2) : ''; 
(!empty($field3)) ? $this->db->where('field3', $field3) : ''; 
    if($pagination!="false"){ 

    $this->db->limit($limit,$start) ; 
    $config['total_rows'] = $data['scount']; 
    $config['per_page'] = $limit; 
    $config['num_links'] = 15; 
    $config['is_ajax_paging']  = TRUE; // default FALSE 
    $config['paging_function'] = 'ajax_paging'; // Your jQuery paging 
    $config['first_link'] = '&laquo;'; 
    $config['full_tag_open'] = '<div class="pagination">'; 
    $config['full_tag_close'] = '</div>'; 
    $this->pagination->initialize($config); 
    $data['pagination']= $this->pagination->create_links(); 
    $query= $this->db->get($tbname); // get records from table 
    $data['is_pagination']=$pagination; 
    $data['fields']=$fields; 
    $record=$query->result_array(); 
    $data['records']=$record; 
    $this->load->view('applicationtable',$data); 
} 
?> 

Как вы можете видеть, что есть дублируют, где условия я хочу, чтобы удалить это.

ответ

0

Использование Конфигурационного Active Record Caching.

$this->db->start_cache(); 
(!empty($field1)) ? $this->db->where('field1', $field1) : ''; 
(!empty($field2)) ? $this->db->where('field2', $field2) : ''; 
(!empty($field3)) ? $this->db->where('field3', $field3) : ''; 
$this->db->stop_cache(); 
$data['scount']=$this->db->count_all_results($tbname); 
... 
... 
$query= $this->db->get($tbname); // get records from table 

Используйте $this->db->flush_cache();, когда вы не хотите использовать в кэше «где» больше.

Смежные вопросы