我对CI的分页有问题。 我的第一页网址:http://example.com/products/page 第二页:http://example.com/products.page/12而不是24,依此类推+12
控制器:
$config = array();
$config["base_url"] = base_url() . "shop/page";
$config["total_rows"] = $this->shop_model->products_count();
$config["per_page"] = 12;
$config["uri_segment"] = 3;
$choice = $config["total_rows"] / $config["per_page"];
$config["num_links"] = round($choice);
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data['products'] = $this->shop_model->
getProducts($config["per_page"], $page);
如果我插入并且:
$config['use_page_numbers'] = TRUE;
型号:
function getProducts($limit, $start)
{
$this->db->select('*');
$this->db->from('products');
$this->db->join('products_img', 'products_img.i_product_id = products.id', 'left');
$this->db->order_by("products.id", "desc");
$this->db->limit($limit, $start);
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
它向我展示了url corectly,但它显示的是与第一页上相同的产品。
我检查过这类问题的其他帖子,但我无法解决。请帮忙!谢谢!
答案 0 :(得分:0)
限制并不关心页面,它关心的结果是:
function getProducts($limit, $start)
{
$this->db->select('*');
$this->db->from('products');
$this->db->join('products_img', 'products_img.i_product_id = products.id', 'left');
$this->db->order_by("products.id", "desc");
$this->db->limit($limit, ($start * $limit));
$query = $this->db->get();
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
它显示“几乎相同”的结果,因为如果页码为1,2或3,您只会偏移1,或2或3 ..
以上假设第1页实际上是0,第2页是1等等。这是因为你默认为零。如果不是这种情况,您应该进行调整以反映您表示页码的内容。