错误的计算codeigniter分页

时间:2015-05-15 12:34:25

标签: php codeigniter pagination

我已经做了codeigniter分页以在图像中显示我的产品。 但第二页有问题, 它不可持续或不断。

我设置per_page是:6, 我的总数据是11。

第1页中的

结果没问题,按照表格1 - 6显示图像,但是当我点击第二页时从3 - 8开始。

这是模型

public function record_count()
{
  return $this->db->count_all('mytable');
}

public function fetch_jenislogam($limit, $start)
{
  $start--;
  if($start<0)
  {
   $start=0;
  }
   $this->db->limit($limit, $start);
   $query = $this->db->get("tb_jenislogam");
   return $query->result_array();
}

这是我的观点

<?php
foreach($results as $data) { ?>
<div class="col-lg-3 text-center">
<a href="<?php echo base_url();?>item/subitem/<?php echo $data->id; ?>"> <!-- to direct product subitem -->
<img class="img-responsive"  src='<?php $img = $data->pics;
if ($img) {
echo base_url().'uploads/origin/'.$data->pics;
} else {
echo base_url().'uploads/origin/def-img.png';
}
?>'></a>
<br>
</div>
<div>
<?php  echo $data->id;?></div>
<?php
}
?>

这个控制器看起来像。

 public function listitem()
  {
   $config = array();
   $config['base_url']  = base_url().'item/listitem';
   $config['total_rows'] = $this->item_m->record_count(); 
   $config['per_page'] = 6;
   $config['uri_segment']   = 3;
   $config['num_links'] = 2;
   $config['use_page_numbers'] = TRUE;
   $config['cur_tag_open'] = '<a class="current">';
   $config['cur_tag_close'] = '</a>';
   $config['next_link'] = '>';
   $config['prev_link'] = '<';

   $this->pagination->initialize($config);
   $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
   $data['links'] = $this->pagination->create_links();
   $data['uri'] = $this->uri->segment(3);
   $data['results'] = $this->item_m->fetch_jenislogam($config['per_page'],  $page);


   $this->load->view('user_header');
   $this->load->view('user/usr_item_view', $data);
   $this->load->view('user_footer');
 }

1 个答案:

答案 0 :(得分:0)

您需要更改控制器中的第二个参数,表示$page变量值:

$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$pageLimit = ($page*$config['per_page']); //Add this line

之后传递

中的$pageLimit变量
$data['results'] = $this->item_m->fetch_jenislogam($config['per_page'],  $pageLimit);

原因: limit函数的第二个参数是偏移量。在你的情况下,它设置为1,2,3 ...