2014-07-07 2 views
0

두 개의 테이블 "cv"와 "users"가 있습니다. 내 검색 양식에 사용자 테이블의 'first_name'필드와 cv-table의 'specialization'필드를 사용하여 데이터베이스를 필터링해야합니다. 이 문제를 해결하는 데 도움주세요. 내 모델에서 &보기. 감사.codeigniter에서 검색 양식을 사용하는 방법

여기 내 컨트롤러의

function search_worker() 
{ 
    $data['query']=$this->kint_model->search_workers($this->input->post('search')); 
    $this->load->view('hire_display',$data); 
} 

가 여기 내 모델의

function search_workers($search) 
{ 
    //get user details from users table 
    $this->db->select('*'); 
    $this->db->from('cv'); 
    $this->db->join('users', 'cv.profile_id = users.id'); 

    $query = $this->db->get(); 

    if($query->num_rows() > 0) 
    { 
     return $query->result(); 
    } 

    //search for workers in hire_display view 
    $query = $this->db->get_where('cv', array('first_name '=> $search))->result(); 

    //return $query for both queries 
    return $query; 
} 

나는 "FIRST_NAME"필드는 "사용자"테이블에 있다고 생각

<?php echo form_open('kint/search_worker'); 

    $data = array('first_name'=>'search', 'id'=>'search'); 
    echo form_input($data); 

    $options = array('' => 'Select specialization', 'database' => 'database', 'webdesign'=> 'webdesign', 'networking' => 'networking'); 
    echo form_dropdown('specialization', $options, $this->input-post('specialization')); 

    $data = array('name'=>'submit', 'id'=>'submit', 'value'=>'Search Workers'); 
    echo form_submit($data); 
?> 

답변

0

검색 양식 내보기 및 "전문화"필드는 "cv"테이블에 있습니다

$search_first_name = trim($this->input->post('first_name')); 
$search_specialization = trim($this->input->post('specialization')); 

$where_condition = "u.first_name LIKE '%$search_first_name%' "; 

if(!empty($search_specialization)){ 
    $where_condition .= " OR c.specialization LIKE '%$search_specialization%' "; 
} 

$this->db->select('*'); 
$this->db->from("users u"); 
$this->db->join('cv c', 'u.id = c.profile_id'); 
$this->db->where($where_condition); 

그리고 당신의 "보기"가 될 것입니다

echo form_open('kint/search_worker'); 

echo form_input(array('name' => 'first_name', 'value' => set_value('first_name'))); 

$options = array('' => 'Select specialization', 'database' => 'database', 'webdesign'=> 'webdesign', 'networking' => 'networking'); 
echo form_dropdown('specialization', $options, set_value('specialization')); 

</form> 
+0

보기는 어떻습니까? – user3359251

+0

님이 답변을 업데이트했습니다! 그것을 확인하십시오. – Asik

0

사용자 테이블에서 이력서 테이블과 FIRST_NAME에서 그 전문성을 고려

당신은 같은 쿼리를 수행도에 따라 순서에 따라 첫 번째 이름을 가져 오는 수 있습니다 너

if($this->input->post('search')) 
{ 
$search = $this->input->post('search');    
$this->db->select('*'); // mention your field names you want to fetch 
$this->db->from("users u"); 
$this->db->join('cv c', 'u.id = c.profile_id'); 
$this->db->where("u.first_name LIKE '%$search%' OR c.specialization LIKE '%$search%'"); 
$this->db->order('u.first_name', 'asc'); // asc or desc 
$query = $this->db->get(); 
} 
관련 문제