Php Codeigniter分页(第1页发布后)

Php Codeigniter分页(第1页发布后),php,codeigniter,pagination,Php,Codeigniter,Pagination,在我的数据库中有大约1000条记录。 搜索查询在我的搜索结果页面的第1页中显示分页结果,但当我转到第2页、第3页等时。。。它什么也没给我看。它给我一条信息说没有找到记录。 我是否遗漏了与相对URI有关的内容?还是别的什么 Controller-college\u search.php public function index() { $param = str_replace('-',' ', $this->uri->segment(2)); $param = st

在我的数据库中有大约1000条记录。 搜索查询在我的搜索结果页面的第1页中显示分页结果,但当我转到第2页、第3页等时。。。它什么也没给我看。它给我一条信息说没有找到记录。 我是否遗漏了与相对URI有关的内容?还是别的什么

Controller-college\u search.php

public function index()
{

    $param = str_replace('-',' ', $this->uri->segment(2));
    $param = strip_tags($param);

    $param2 = str_replace('-',' ', $this->uri->segment(3));
    $param2 = strip_tags($param2);

    $data['msg'] = '';

    //Pagination starts
    $total_rows = $this->posted_colleges_model->count_searched_job_records($param,$param2);
    $config = pagination_configuration(base_url("search-college/".$this->uri->segment(2)), $total_rows, 50, 3, 5, true);
    $this->pagination->initialize($config);
    $page = ($this->uri->segment(2)) ? $this->uri->segment(3) : 0;
    $page_num = $page-1;
    $page_num = ($page_num<0)?'0':$page_num;
    $page = $page_num*$config["per_page"];
    $data["links"] = $this->pagination->create_links();
    $data['total_rows'] = $total_rows;
    $data['page'] = $current_records;
    $data['from_record'] = $page+1;
    $data['result'] = $obj_result;
    $data['param'] = $param;
    $data['param2'] = $param2;
    //Pagination ends

    $obj_result = $this->posted_colleges_model->get_searched_colleges($param,$param2, $config["per_page"], $page);
    public function count_searched_job_records($param,$param2) {
        $Q = $this->db->query('CALL count_ft_searched_colleges("'.$param.'","'.$param2.'")');   
         if ($Q->num_rows > 0) {
            $return = $Q->row('total');
        } else {
            $return = 0;
        }
        $Q->next_result();
        $Q->free_result();
        return $return;

    }

public function get_searched_colleges($param,$param2='', $per_page, $page) {        
       $Q = $this->db->query('CALL ft_search_job2("'.$param.'", "'.$param2.'", '.$page.', '.$per_page.')');
        if ($Q->num_rows > 0) {
            $return = $Q->result();
        } else {
            $return = 0;
        }
        $Q->next_result();
        $Q->free_result();
        return $return;
    <div class="searchjoblist col-md-<?php echo $col;?>"> 
<div class="paginationWrap"> <?php echo ($result)?$links:'';?> </div>

  <!--Colleges List-->

  <div class="searchpage">
    <div class="toptitlebar">
      <div class="row">
        <div class="col-md-6"><b><?php echo $param;?> Colleges</b></div>
        <div class="col-md-6 text-right"><strong>Colleges <?php echo $from_record.' - '.$page;?> of <?php echo $total_rows;?></strong> </div>
      </div>
    </div>

    <ul class="searchlist">
    <!--Colleges Row-->

      <?php if($result):
    $CI =& get_instance();
                        foreach($result as $row):
                            $company_logo = ($row->company_logo)?$row->company_logo:'no_logo.jpg';
                            $is_already_applied = $CI->is_already_applied_for_job($this->session->userdata('user_id'), $row->ID);       
              ?>
      <li>
        <div class="row">
          <div class="col-md-2"><a href="<?php echo base_url('company/'.$row->company_slug);?>" class="thumbnail" title="<?php echo $row->job_title;?>"><img src="<?php echo base_url('public/uploads/employer/thumb/college-logos/'.$company_logo);?>" alt="<?php echo base_url('company/'.$row->company_slug);?>" /></a></div>
          <div class="col-md-10">
              <div class="col-md-7"> <a href="<?php echo base_url('company/'.$row->company_slug);?>"  class="jobtitle" title="View details about <?php echo $row->company_name;?>"><?php echo $row->company_name;?></a>
              <div class="location"><?php echo $row->company_location;?></div>

            </div>
            <div class="col-md-5">
              <?php
            if($is_already_applied=='yes'):
          ?>
              <a href="javascript:;" class="applybtngray">Already Applied</a>
              <?php else:?>
              <a href="<?php echo base_url('company/'.$row->company_slug);?>" class="applybtn">More Details</a>
              <?php endif;?>

            </div>
            <div class="clearfix"> </div>               
          </div>              
        </div>
         <p><?php echo word_limiter(strip_tags(str_replace('-',' ',$row->company_description)),22);?></p>
      </li>
      <?php endforeach; else: ?>
      <div class="err" align="center">
        <p><strong> <?php echo ($param=='')?'Please enter keywords above to display the relevant opened jobs.':'Sorry, no record found';?> </strong></p>
      </div>
      <?php endif;?>
    </ul>
  </div>

  <!--Pagination-->

  <div class="paginationWrap"> <?php echo ($result)?$links:'';?> </div>
</div>
$route['search-college'] = 'college_search/index/$1';
$route['search-college/(:any)'] = 'college_search/index/$1';
程序1计算被搜索的学院数量

    BEGIN
    SELECT COUNT(pc.ID) as total
    FROM `pp_companies` pc
    WHERE pc.sts = 'active'

AND (
        pc.company_name like CONCAT("%",param,"%")
        OR pc.company_city like CONCAT("%",param,"%")
        OR pc.company_location like CONCAT("%",param,"%")
        OR pc.company_state like CONCAT("%",param,"%")
        OR pc.category1 like CONCAT("%",param,"%")
        OR pc.category2 like CONCAT("%",param,"%")
        OR pc.category3 like CONCAT("%",param,"%")

    )
AND pc.company_city like CONCAT("%",param2,"%");
END
程序2ft\u搜索作业2

    BEGIN

    SELECT pc.ID, pc.company_name, pc.company_logo, pc.company_slug, pc.sts,pc.company_location,pc.company_city,pc.company_state,pc.category1,pc.category2,pc.category3
    FROM `pp_companies` pc 
    WHERE pc.sts = 'active' 
    AND (
        pc.company_name like CONCAT("%",param,"%")
        OR pc.company_city like CONCAT("%",param,"%")
        OR pc.company_location like CONCAT("%",param,"%")
        OR pc.company_state like CONCAT("%",param,"%")
        OR pc.category1 like CONCAT("%",param,"%")
        OR pc.category2 like CONCAT("%",param,"%")
        OR pc.category3 like CONCAT("%",param,"%")

        )
        AND (pc.company_city) like CONCAT("%",param2,"%")
ORDER BY pc.ID DESC
    LIMIT from_limit, to_limit;
END
View-college\u search\u View.php

public function index()
{

    $param = str_replace('-',' ', $this->uri->segment(2));
    $param = strip_tags($param);

    $param2 = str_replace('-',' ', $this->uri->segment(3));
    $param2 = strip_tags($param2);

    $data['msg'] = '';

    //Pagination starts
    $total_rows = $this->posted_colleges_model->count_searched_job_records($param,$param2);
    $config = pagination_configuration(base_url("search-college/".$this->uri->segment(2)), $total_rows, 50, 3, 5, true);
    $this->pagination->initialize($config);
    $page = ($this->uri->segment(2)) ? $this->uri->segment(3) : 0;
    $page_num = $page-1;
    $page_num = ($page_num<0)?'0':$page_num;
    $page = $page_num*$config["per_page"];
    $data["links"] = $this->pagination->create_links();
    $data['total_rows'] = $total_rows;
    $data['page'] = $current_records;
    $data['from_record'] = $page+1;
    $data['result'] = $obj_result;
    $data['param'] = $param;
    $data['param2'] = $param2;
    //Pagination ends

    $obj_result = $this->posted_colleges_model->get_searched_colleges($param,$param2, $config["per_page"], $page);
    public function count_searched_job_records($param,$param2) {
        $Q = $this->db->query('CALL count_ft_searched_colleges("'.$param.'","'.$param2.'")');   
         if ($Q->num_rows > 0) {
            $return = $Q->row('total');
        } else {
            $return = 0;
        }
        $Q->next_result();
        $Q->free_result();
        return $return;

    }

public function get_searched_colleges($param,$param2='', $per_page, $page) {        
       $Q = $this->db->query('CALL ft_search_job2("'.$param.'", "'.$param2.'", '.$page.', '.$per_page.')');
        if ($Q->num_rows > 0) {
            $return = $Q->result();
        } else {
            $return = 0;
        }
        $Q->next_result();
        $Q->free_result();
        return $return;
    <div class="searchjoblist col-md-<?php echo $col;?>"> 
<div class="paginationWrap"> <?php echo ($result)?$links:'';?> </div>

  <!--Colleges List-->

  <div class="searchpage">
    <div class="toptitlebar">
      <div class="row">
        <div class="col-md-6"><b><?php echo $param;?> Colleges</b></div>
        <div class="col-md-6 text-right"><strong>Colleges <?php echo $from_record.' - '.$page;?> of <?php echo $total_rows;?></strong> </div>
      </div>
    </div>

    <ul class="searchlist">
    <!--Colleges Row-->

      <?php if($result):
    $CI =& get_instance();
                        foreach($result as $row):
                            $company_logo = ($row->company_logo)?$row->company_logo:'no_logo.jpg';
                            $is_already_applied = $CI->is_already_applied_for_job($this->session->userdata('user_id'), $row->ID);       
              ?>
      <li>
        <div class="row">
          <div class="col-md-2"><a href="<?php echo base_url('company/'.$row->company_slug);?>" class="thumbnail" title="<?php echo $row->job_title;?>"><img src="<?php echo base_url('public/uploads/employer/thumb/college-logos/'.$company_logo);?>" alt="<?php echo base_url('company/'.$row->company_slug);?>" /></a></div>
          <div class="col-md-10">
              <div class="col-md-7"> <a href="<?php echo base_url('company/'.$row->company_slug);?>"  class="jobtitle" title="View details about <?php echo $row->company_name;?>"><?php echo $row->company_name;?></a>
              <div class="location"><?php echo $row->company_location;?></div>

            </div>
            <div class="col-md-5">
              <?php
            if($is_already_applied=='yes'):
          ?>
              <a href="javascript:;" class="applybtngray">Already Applied</a>
              <?php else:?>
              <a href="<?php echo base_url('company/'.$row->company_slug);?>" class="applybtn">More Details</a>
              <?php endif;?>

            </div>
            <div class="clearfix"> </div>               
          </div>              
        </div>
         <p><?php echo word_limiter(strip_tags(str_replace('-',' ',$row->company_description)),22);?></p>
      </li>
      <?php endforeach; else: ?>
      <div class="err" align="center">
        <p><strong> <?php echo ($param=='')?'Please enter keywords above to display the relevant opened jobs.':'Sorry, no record found';?> </strong></p>
      </div>
      <?php endif;?>
    </ul>
  </div>

  <!--Pagination-->

  <div class="paginationWrap"> <?php echo ($result)?$links:'';?> </div>
</div>
$route['search-college'] = 'college_search/index/$1';
$route['search-college/(:any)'] = 'college_search/index/$1';

已更新

尝试使用更标准的方式设置分页

$config['base_url'] = base_url('search-college');   
    //assuming example.com/search-college/[PAGE_NUMBER]

$config['total_rows'] = 200;
$config['uri_segment'] = 2;  
    //assuming example.com/search-college/[PAGE_NUMBER]

$config['num_links'] = 5;
$config['use_page_numbers'] = true;
$config['total_rows'] = $total_rows;
$config['per_page'] = 50;

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

原始答案

从上面发布的代码来看,似乎缺少一些逻辑来计算
ft\u search\u job2
过程的From\u限制和to\u限制

要使分页正常工作并使用过程(应尝试使用CodeIgniter查询生成器),请按如下方式计算偏移量:

from_limit = $page*$per_page

这是假设页面索引为0,而不是从1开始

如何计算from_限制和to_限制?您是否能够记录查询并查看实际查询的内容?记录查询时总是出现问题,您能为我指出正确的方向吗?如果我应该使用print\u r或last\u query?from\u limit和to\u limit只是过程中的INT值/长度“5”。echo$this->db->last\u query();出口在obj_结果查询给我这个“CALL ft_search_job2(“engineering”,0,50)”from_limit=$page*$per_page之后,这个应该被添加到控制器中,对吗?是的,应该是这样,然后在
调用中的from_limit参数中使用它
我尝试了同样的操作,但是页面不想在那之后加载,不确定我是否做对了:'你敢肯定你的程序设置正确吗?尝试使用CodeIgniter的查询构建器当我在模型中的param2中传递一个空变量,在该变量调用过程时,我可以在第一个页面中进行分页,但只要我单击分页的数字,它就会将我带到正确的结果集,然后分页就会消失。