2017-07-19 59 views
0

我在codeigniter 3中有一个分页问题。在加入和2之后,我必须使用$ this-> db-> limit。我后我的代码在这里...加入后使用限制

型号

public function fetch_matching_candidati_by_posizione($limit, $start, $event_id, $id_competenza) 
    { 
    $this->db->select('*'); 
    $this->db->from('matching_candidati'); 
    $this->db->join('competenze_candidato', 'competenze_candidato.id_candidato = matching_candidati.id_candidato'); 
    $this->db->where('competenze_candidato.id_competenza', $id_competenza); 
    $this->db->where('matching_candidati.event_id', $event_id); 
    $this->db->limit($limit, $start); 

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

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

控制器

public function cerca_candidati_per_posizione() 
{ 
    if($this->getUtente()->isAdmin()) 
    {  
     $event_id = $this->uri->segment(6); 
     $event_anno = $this->uri->segment(3); 
     $event_url = $this->uri->segment(4); 
     $id_competenza = trim($this->input->post('posizione_digital_job_id')); 

     $this->load->model('matching_candidati_model'); 
     $matching_candidati_model = new matching_candidati_model(); 
     $this->load->model('matching_competenze_model'); 
     $matching_competenze_model = new matching_competenze_model();     

     $config = array(); 
     $config["base_url"] = base_url() . "amministratore/eventi/".$event_anno."/".$event_url."/matching/".$event_id."/candidati_posizioni_aperte/cerca_candidati_per_posizione"; 

     if($id_competenza == "Altro"){ 
      $config["total_rows"] = $matching_candidati_model->record_count_by_id_posizione_altro($event_id); 
     }else{ 
      $config["total_rows"] = $matching_candidati_model->record_count_by_id_posizione($event_id, $id_competenza); 
     } 

     $config["per_page"] = 50; 
     $config["uri_segment"] = 9; 
     $config['num_links'] = 2; 

     $config['full_tag_open'] = '<div class="pagination"><ul>'; 
     $config['full_tag_close'] = '</ul></div><!--pagination-->'; 

     $config['first_link'] = '&laquo; First'; 
     $config['first_tag_open'] = '<li class="prev page">'; 
     $config['first_tag_close'] = '</li>'; 

     $config['last_link'] = 'Last &raquo;'; 
     $config['last_tag_open'] = '<li class="next page">'; 
     $config['last_tag_close'] = '</li>'; 

     $config['next_link'] = 'Next &rarr;'; 
     $config['next_tag_open'] = '<li class="next page">'; 
     $config['next_tag_close'] = '</li>'; 

     $config['prev_link'] = '&larr; Previous'; 
     $config['prev_tag_open'] = '<li class="prev page">'; 
     $config['prev_tag_close'] = '</li>'; 

     $config['cur_tag_open'] = '<li class="active"><a href="">'; 
     $config['cur_tag_close'] = '</a></li>'; 

     $config['num_tag_open'] = '<li class="page">'; 
     $config['num_tag_close'] = '</li>'; 

     $this->pagination->initialize($config); 

     $page = ($this->uri->segment(9)) ? $this->uri->segment(9) : 0; 

     if($id_competenza == "Altro"){ 
      $data_pass["candidati"] = $matching_candidati_model->fetch_matching_candidati_by_posizione_altro($config["per_page"], $page, $event_id); 
      $data_pass['numero_candidati'] = $matching_candidati_model->record_count_by_id_posizione_altro($event_id); 
     }else{ 
      $data_pass["candidati"] = $matching_candidati_model->fetch_matching_candidati_by_posizione($config["per_page"], $page, $event_id, $id_competenza); 
      $data_pass['numero_candidati'] = $matching_candidati_model->record_count_by_id_posizione($event_id, $id_competenza); 
     } 

     $data_pass["links"] = $this->pagination->create_links(); 
     $data_pass['event_id'] = $event_id; 
     $data_pass['event_anno'] = $event_anno; 
     $data_pass['event_url'] = $event_url; 
     $data_pass['competenze'] = $matching_competenze_model->get_all_competenze_default();   

     $data_header=array('title'=>'Master Club - Home Amministratore', 
      'css'=>array('bootstrap.css', 'bootstrap-responsive.css'), 
      'js'=>array('jquery.js', 'bootstrap.js', 'bootstrap.min.js', 
      'bootstrap-dropdown.js', 'bootstrap-button.js', 'bootstrap-alert.js', 
      'bootstrap-collapse.js', 'bootstrap-tooltip.js', 'bootstrap-transition.js', 'bootstrap-tab.js')); 
     $breadcrumps=array(
      '0'=>'Home', 
      '1'=>'Amministratore', 
      '2'=>'Eventi', 
      '3'=>$event_anno, 
      '4'=>$event_url, 
      '5'=>'Candidati job matching' 
     ); 
     $data_header['breadcrumps']=$breadcrumps; 
     $url_breadcrumps=array(
      '0'=>'amministratore/login', 
      '1'=>'amministratore/home', 
      '2'=>'amministratore/eventi', 
      '3'=>'amministratore/eventi/'.$event_anno, 
      '4'=>'amministratore/eventi/'.$event_anno.'/'.$event_url, 
      '5'=>'amministratore/eventi/'.$event_anno.'/'.$event_url.'/matching/'.$event_id.'/candidati_posizioni_aperte' 
     ); 
     $data_header['url_breadcrumps']=$url_breadcrumps; 

     $data_footer['filtri'] = true; 

     $this->load->view('header', $data_header); 
     $this->load->view('amministratore/matching/matching/candidati_posizioni_aperte', $data_pass); 
     $this->load->view('footer', $data_footer); 

    } 
    else 
    { 
     show_error('Accesso negato', 403); 
    } 
} 

不幸的是,这是行不通的。有人能帮我吗? 如果我的列表第2页切换不显示什么...

+0

你可能有错误的控制器,在那里你启动你的分页配置。你可以添加你的控制器代码吗? – GeorgeGeorgitsis

+0

1.你应该编辑你的问题来添加你的代码而不是回答。 2.你确定uri-> segment(9)是你的分页吗? – GeorgeGeorgitsis

+0

yes this-> uri-> segment(9)是正确的。 – Hadorn

回答

0

不知道这是否有差别,但你的“从”捞出的GET更改为$this->db->get('matching_candidati')->result();

哟不需要你的支票因为

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

这是重复性的,假设您将检查查询是否返回false。当如果你只是检查查询结果一般设定,如果有结果,你会得到真假,如果它是空的

所以在你看来这将是:

if(candidati){ 

    //rest of your view action 
}