每年都做点东西,分页老是忘,留一个吧,CODEIGNITER也用了好几年了,挺好用的.
控制器部分:
/*
* 联系人编辑列表(带删改按钮分页列表)
*/
public function contact_list_edit($num = '')
{
//载入模型
$this->load->model('contact_m');
//获取记录总数
$contact_total=$this->contact_m->get_contact_total();
$this->load->library('pagination'); // 加载分页类
$config['base_url'] = base_url().'index.php/contact/contact_list_edit/'; // 分页的基础 URL
$config['total_rows'] = $contact_total; // 统计数量(总共有多少条记录要告诉分页类)
$config['per_page'] = 3; // 每页显示数量,为了能有更好的显示效果,我将该数值设置得较小
$config['num_links'] = 1; // 当前连接前后显示页码个数
$config['full_tag_open'] = '<div class="pagination">'; // 分页开始样式
$config['full_tag_close'] = '
'; // 分页结束样式
$config['first_link'] = '首页'; // 第一页显示
$config['last_link'] = '末页'; // 最后一页显示
$config['next_link'] = '下一页 >'; // 下一页显示
$config['prev_link'] = '< 上一页'; // 上一页显示
$config['cur_tag_open'] = ' <a class="current">'; // 当前页开始样式
$config['cur_tag_close'] = '</a>'; // 当前页结束样式
$this->pagination->initialize($config); // 配置分页
//获取分页数据
$data["contact_list"]=$this->contact_m->get_page_list(intval($num),$config['per_page']);// 获取前分页数据
//生成分页导航
$data['pager'] = $this->pagination->create_links();
//进入分页视图
$this->load->view('contact/list_edit', $data);
}
<?php foreach ($contact_list as $item): ?>
<tr>
<td class="left_txt_downline" height="25" valign="top"> </td>
<td class="left_txt_downline" height="28" valign="top"><?php echo $item->cname?></td>
<td class="left_txt_downline" height="28" valign="top"><?php echo $item->depart?></td>
<td class="left_txt_downline" height="28" valign="top"><strong><?php if($item->mobile1==""){echo "--";}else{echo $item->mobile1;}?></strong></td>
<td class="left_txt_downline" height="28" valign="top"><?php if($item->mobile2==""){echo "--";}else{echo $item->mobile2;}?></td>
<td class="left_txt_downline" height="28" valign="top"><?php echo $item->phones?></td>
<td class="left_txt_downline" height="28" valign="top"><?php echo $item->phonel?></td>
<td class="left_txt_downline" height="28" valign="top"><?php if($item->remark==""){echo "--";}else{echo $item->remark;}?></td>
<td class="left_txt_downline" height="28" valign="top"><a href="<?php echo site_url('contact/contact_delete/'.$item->id)?>">删除</a></td>
</tr>
<?php endforeach ?>
/*
* 获取分页记录
* $pagenum 每页要显示的记录数
* $offset 结果集偏移量(offset)就是指定从那条记录开始,要从第一条开始就是0,
* mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行
//换句话说,LIMIT n 等价于 LIMIT 0,n。
注意limit 10和limit 9,1的不同:
*/
function get_page_list($offset,$page_record_num)
{
$query = $this->db->get('contact',$page_record_num,$offset);//注意:第一参数是表名,第二参数是每页纪录数,第三个参数是偏移(指定的记录点+1)
return $query->result();// 生成对象结果集,控制器中直接操作,不用写->result();
}