控制器里的方法:
//搜索出的产品列表
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']中
$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;
}