codeigniter分页URL和显示问题

时间:2014-09-12 19:50:47

标签: php codeigniter pagination

我对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,但它显示的是与第一页上相同的产品。

我检查过这类问题的其他帖子,但我无法解决。请帮忙!谢谢!

1 个答案:

答案 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等等。这是因为你默认为零。如果不是这种情况,您应该进行调整以反映您表示页码的内容。