Php 代码点火器不工作时的分页

Php 代码点火器不工作时的分页,php,codeigniter,pagination,Php,Codeigniter,Pagination,我的codeigniter应用程序有问题。我设置了一个控制器方法,如下所示: public function program_search() { $config['base_url'] = base_url().'/site/program_search/'; $config['total_rows'] = $this->db->get('wc_program')->num_rows(); $config['per_page'] = 1

我的codeigniter应用程序有问题。我设置了一个控制器方法,如下所示:

    public function program_search()
    {
    $config['base_url'] = base_url().'/site/program_search/';
    $config['total_rows'] = $this->db->get('wc_program')->num_rows();
    $config['per_page'] = 15;
    $config['num_links'] = 1;
    $config["uri_segment"] = 3;
    $config['num_links'] = 1;
    $config['full_tag_open'] = '<div class="pagination pagination-small"><ul>';
    $config['full_tag_close'] = '</ul></div>';
    $config['first_link'] = false;
    $config['last_link'] = false;
    $config['first_tag_open'] = '<li>';
    $config['first_tag_close'] = '</li>';
    $config['prev_link'] = '&laquo;';
    $config['prev_tag_open'] = '<li class="prev">';
    $config['prev_tag_close'] = '</li>';
    $config['next_link'] = '&raquo;';
    $config['next_tag_open'] = '<li>';
    $config['next_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li>';
    $config['last_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);
    $term = $this->input->post('term');

    $this->db->like('JobRef', $term);
    $this->db->or_like('Area', $term);
    $this->db->or_like('Parish', $term);
    $this->db->or_like('WorkType', $term);
    $this->db->or_like('Location', $term);
    $this->db->order_by('wc_program.JobRef');
    $this->db->limit(15, $this->uri->segment(3));  
    $q = $this->db->get('wc_program');
    if($q->num_rows() > 0) {
        $data['results'] = $q->result();    
    }    
    $data["links"] = $this->pagination->create_links();        
    $this->front->set('title', 'Search our current programmes');
    $this->front->set('metadesc', 'Program Search');
    $this->front->set('metakeywords', '');
    $this->front->buffer('content', 'site/program_search_results', $data);
    $this->front->render();
    }
公共功能程序搜索()
{
$config['base_url']=base_url()。/site/program_search/;
$config['total_rows']=$this->db->get('wc_program')->num_rows();
$config['per_page']=15;
$config['num_links']=1;
$config[“uri_段”]=3;
$config['num_links']=1;
$config['full_tag_open']='
    '; $config['full_tag_close']='
'; $config['first_link']=false; $config['last_link']=false; $config['first_tag_open']='
  • '; $config['first_tag_close']='
  • ; $config['prev_link']='laquo;'; $config['prev_tag_open']='
  • '; $config['prev_tag_close']='
  • ; $config['next_link']='»;'; $config['next_tag_open']='
  • '; $config['next_tag_close']='
  • ; $config['last_tag_open']='
  • '; $config['last_tag_close']='
  • ; $config['cur_tag_open']='
  • ; $config['num_tag_open']='
  • '; $config['num_tag_close']='
  • ; $this->pagination->initialize($config); $term=$this->input->post('term'); $this->db->like('JobRef',$term); $this->db->或类似('Area',$term); $this->db->or_like('Parish',$term); $this->db->或类似('WorkType',$term); $this->db->或类似('Location',$term); $this->db->order_by('wc_program.JobRef'); $this->db->limit(15$this->uri->segment(3)); $q=$this->db->get('wc_程序'); 如果($q->num\u rows()>0){ $data['results']=$q->result(); } $data[“links”]=$this->pagination->create_links(); $this->front->set('title','Search our current programs'); $this->front->set('metadesc','programsearch'); $this->front->set('metakeywords',''); $this->front->buffer('content','site/program\u search\u results',$data); $this->front->render(); }
    但它会根据搜索框中键入的内容显示结果,但如果结果少于15个,它仍会显示分页,这是我不想要的。如果结果超过15,则再次显示分页,这是我想要的,但进入下一页时没有显示任何内容,请从代码中告诉我我做错了什么

    我真的被困在哪里了,需要一些帮助,请

    非常感谢你需要移动这个

    $this->db->like('JobRef', $term);
    $this->db->or_like('Area', $term);
    $this->db->or_like('Parish', $term);
    $this->db->or_like('WorkType', $term);
    $this->db->or_like('Location', $term);
    $this->db->order_by('wc_program.JobRef');
    $this->db->limit(15, $this->uri->segment(3));  
    $q = $this->db->get('wc_program');
    if($q->num_rows() > 0) {
        $data['results'] = $q->result();    
    }
    
    在您的分页配置之上,这样您就可以通过

    $q->num_rows()
    
    $config['total_rows']
    参数

    public function program_search()
    {
        $term = $this->input->post('term');
    
        // records for pagination, without a limit
        $this->db->like('JobRef', $term);
        $this->db->or_like('Area', $term);
        $this->db->or_like('Parish', $term);
        $this->db->or_like('WorkType', $term);
        $this->db->or_like('Location', $term);
        $this->db->order_by('wc_program.JobRef');  
        $q = $this->db->get('wc_program');
    
        // records for displaying, with a limit
        $this->db->like('JobRef', $term);
        $this->db->or_like('Area', $term);
        $this->db->or_like('Parish', $term);
        $this->db->or_like('WorkType', $term);
        $this->db->or_like('Location', $term);
        $this->db->order_by('wc_program.JobRef');
        $this->db->limit(15, $this->uri->segment(3));  
        $query = $this->db->get('wc_program');
    
        if($query->num_rows() > 0) {
            $data['results'] = $query->result();    
        }
    
        // pagination
        $config['base_url'] = base_url().'/site/program_search/';
        $config['total_rows'] = $q->num_rows(); // new pagination setting, using the unlimited results
        $config['per_page'] = 15;
        $config['num_links'] = 1;
        $config["uri_segment"] = 3;
        $config['num_links'] = 1;
        $config['full_tag_open'] = '<div class="pagination pagination-small"><ul>';
        $config['full_tag_close'] = '</ul></div>';
        $config['first_link'] = false;
        $config['last_link'] = false;
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['prev_link'] = '&laquo;';
        $config['prev_tag_open'] = '<li class="prev">';
        $config['prev_tag_close'] = '</li>';
        $config['next_link'] = '&raquo;';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li>';
        $config['last_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);
    
        $data["links"] = $this->pagination->create_links();        
        $this->front->set('title', 'Search our current programmes');
        $this->front->set('metadesc', 'Program Search');
        $this->front->set('metakeywords', '');
        $this->front->buffer('content', 'site/program_search_results', $data);
        $this->front->render();
    }
    
    公共功能程序搜索()
    {
    $term=$this->input->post('term');
    //用于分页的记录,无限制
    $this->db->like('JobRef',$term);
    $this->db->或类似('Area',$term);
    $this->db->or_like('Parish',$term);
    $this->db->或类似('WorkType',$term);
    $this->db->或类似('Location',$term);
    $this->db->order_by('wc_program.JobRef');
    $q=$this->db->get('wc_程序');
    //用于显示的记录,有限制
    $this->db->like('JobRef',$term);
    $this->db->或类似('Area',$term);
    $this->db->or_like('Parish',$term);
    $this->db->或类似('WorkType',$term);
    $this->db->或类似('Location',$term);
    $this->db->order_by('wc_program.JobRef');
    $this->db->limit(15$this->uri->segment(3));
    $query=$this->db->get('wc_程序');
    如果($query->num\u rows()>0){
    $data['results']=$query->result();
    }
    //分页
    $config['base_url']=base_url()。/site/program_search/;
    $config['total_rows']=$q->num_rows();//使用无限结果新建分页设置
    $config['per_page']=15;
    $config['num_links']=1;
    $config[“uri_段”]=3;
    $config['num_links']=1;
    $config['full_tag_open']='
      '; $config['full_tag_close']='
    '; $config['first_link']=false; $config['last_link']=false; $config['first_tag_open']='
  • '; $config['first_tag_close']='
  • ; $config['prev_link']='laquo;'; $config['prev_tag_open']='
  • '; $config['prev_tag_close']='
  • ; $config['next_link']='»;'; $config['next_tag_open']='
  • '; $config['next_tag_close']='
  • ; $config['last_tag_open']='
  • '; $config['last_tag_close']='
  • ; $config['cur_tag_open']='
  • ; $config['num_tag_open']='
  • '; $config['num_tag_close']='
  • ; $this->pagination->initialize($config); $data[“links”]=$this->pagination->create_links(); $this->front->set('title','Search our current programs'); $this->front->set('metadesc','programsearch'); $this->front->set('metakeywords',''); $this->front->buffer('content','site/program\u search\u results',$data); $this->front->render(); }

    您可能还需要调整偏移量参数,我无法在本地测试此代码,但它应该可以让您开始使用。

    您可以使用$config['total_rows'],并询问是否有超过15个,如果是,则显示分页链接

    if($config['total_rows']>15):
        $data["links"] = $this->pagination->create_links();
    endif;
    

    您需要传入结果的总行数,而不是从表中全部获取的总行数。你会先搜索并传递结果的所有行吗?好吧,那么根据已经存在的代码我该怎么做呢?我会添加一个答案给我几分钟Hanks mate,谢谢!但是现在有一件小事情,分页不显示返回的结果是否超过15个,这显然需要这样做,以便用户可以看到更多的结果,但是任何少于15个的都不显示分页。我仍然需要一些帮助,请找人!问题是查询的
    limit()
    部分。无法添加限制,因为
    num\u rows()
    将始终为15或更少。实际上,您需要运行查询两次——第一次运行时没有LIMIT子句(查看总共有多少行),第二次运行时使用LIMIT/offset进行检索