控制器里的方法:
//搜索出的产品列表
public function products_some()
{
$this->load->library('pagination');
$ProName=$this->input->get('proname');
$page_num = '4'; //每页的数据
$data = $this->product_model->page($page_num, $this->uri->segment(4), $ProName);//$this->uri->segment(4)为admin/product/products_list/3最后一个参数(3)的段数,即偏移量
$total_nums = $data['total_nums']; //这里得到从数据库中的总页数
$data['pro'] = $data[0]; //把查询结果$data2[] = $data;放到$data['pro']中
$config['base_url'] = site_url('admin/product/products_some');//分页所在的控制器类/方法的完整的 URL
$config['total_rows'] = $total_nums;//总页数
$config['per_page'] = $page_num; //每页的数据;//每页显示 20 个项目
//$config['cur_tag_open'] = ''; //“当前页”链接的打开标签。
$config['cur_tag_open'] = '';//当前页链接的起始标签。
$config['cur_tag_close'] = '';//当前页链接的结束标签。
$config['attributes'] = array('class' => 'num');//为每个页数添加class = 'num'
$config['reuse_query_string'] =TRUE;
$this->pagination->initialize($config);
if (empty($data['pro'])) {
show_404();
}
$this->load->view('admin/products-list.html',array('data' =>$data['pro'],'total_nums'=>$total_nums) );//渲染视图
}
model里方法
//分页搜索方法
//传入3个参数,每页的数据量,起始位置,输入的产品名
public function page($per_nums, $start_position, $ProName) {
$this->db->select('*');
$this->db->from('products');
$this->db->join('product_category', 'product_category.id = products.pro_category', 'left');
$this->db->order_by('products.pro_id', 'desc');
$this->db->like('products.pro_name', $ProName);
$this->db->limit($per_nums, $start_position);
$query = $this->db->get();
$data = $query->result_array();
$data2[] = $data;
//执行$this->db->count_all_results后数据对象会被重置,所以为计数相当于执行多一次查找
$this->db->select('*');
$this->db->like('products.pro_name', $ProName);
$data2['total_nums'] = $this->db->count_all_results('products');
return $data2;
}