在Foreach循环中增加运算符以进行分页

时间:2014-01-14 14:28:52

标签: php codeigniter pagination

我正在使用CodeIgniter Pagination类为每页10行分页。我正在使用foreach循环。

我的问题是,循环递增运算符在第二个,第三个和第二个中重置为1。下一页分页。

第1页截图[仅限虚拟数据]: dummy data only

第2页截图[仅限虚拟数据]: dummy data only

截屏[仅限虚拟数据]: dummy data only

我的控制器:

<?php

class Mypagination extends CI_Controller{
    function index(){

        $this->load->database();
        $this->load->library('pagination');

        $config['base_url'] = '/codeigniter/index.php/mypagination/index/';
        $config['total_rows'] = $this->db->get('tracking')->num_rows();
        $config['per_page'] = 10;

        $config['next_link'] = 'Next';
        $this->pagination->initialize($config);

        $data['query'] = $this->db->get('tracking', $config['per_page'], $this->uri->segment(3));
        $this->load->view('mypagination_view', $data);

    }
}

我的观点:

<?php

$i = 1;

foreach($query->result() as $row){
    echo $i++ . ') ';
echo $row->name . ' - ' . $row->email;
echo '<br>';
}

echo $this->pagination->create_links();

?>

我想让递增运算符继续在第二页中的下一个分页页面,如11,12,13 ....第三页21,22,23 ......

如何解决这个问题?

对不起,如果这是太基本的问题。我是CodeIgniter和PHP的新手。

2 个答案:

答案 0 :(得分:1)

在您看来:

$links = $this->pagination->create_links();
$i = 1 + $this->pagination->cur_page*$this->pagination->per_page;

foreach($query->result() as $row){
   echo $i++ . ') ';
   echo $row->name . ' - ' . $row->email;
   echo '<br>';
}

echo $links;

你很酷。

另外,我建议你使用较少的回声,并且仅用于模板的php部分。例如,您的代码可以像这样重新格式化:

<?php $links = $this->pagination->get_links(); ?>

<ol start="<?php echo 1 + $this->pagination->cur_page*$this->pagination->per_page; ?>" >
<?php foreach($query->result() as $row) : ?>
   <li><?php echo $row->name . ' - ' . $row->email; ?></li>
<?php endforeach; ?>
</ol>

<?php echo $links; ?>

我认为现在看起来更干净。

答案 1 :(得分:0)

你使用会话吗?也许是这样的:

<?php

$i = $this->session->userdata('increment') ? $this->session->userdata('increment') : 1;

foreach($query->result() as $row){
  echo $i++ . ') ';
  echo $row->name . ' - ' . $row->email;
  echo '<br>';
}

echo $this->pagination->create_links();
$this->session->set_userdata('increment', $i);

?>