Welcome Guest, Not a member yet? Register   Sign In
Pagination 404, can someone help please!

I am trying to paginate a record set in an admin panel, the url is http://localhost/mydomain/admin/products. the links show up correctly but when I click the link it gives me a 404.

Here is my code:


function get_admin_products() {
   $result = $this->db->query("SELECT p.product_id, p.product_name, p.price, GROUP_CONCAT( DISTINCT (
    ) ) AS category_ids, GROUP_CONCAT( DISTINCT (
    ) ) AS category_names
    FROM product AS p
    LEFT JOIN product_category AS pc
    USING (
    LEFT JOIN category AS c
    USING (
    GROUP BY product_id");
    return $result->result_array();

function index() {
  $data['admin_title']= "";
  $data['folder']= "products";
  $data['main']= "products_view";
  $admin_products = $this->MProducts->get_admin_products();
   $quantity = 15; // how many per page
    $start = $this->uri->segment(3); // this is auto-incremented by the pagination class
     if(!$start) $start = 0;    
     $data['admin_products'] = array_slice($admin_products, $start, $quantity);
     $config['base_url'] = base_url().'admin/products';
     $config['uri_segment'] = 3;
     $config['total_rows'] = count($admin_products);
     $config['per_page'] = $quantity;

  $data['pagination'] = $this->pagination->create_links();
  $data['get_last'] = $this->MProducts->get_last_product_id();
  $data['build_categories'] = $this->MProducts->get_all_categories();
        $this->load->view('admin/user_view', $data);

If someone could please help it would be much appreciated..



1) Use site_url() instead of base_url() when it comes to links to your web pages. base_url() is better for static assets, or anything else that doesn't go through index.php

2) Assuming admin is a folder, and products is your controller, viewing a pagination URL such as localhost/mydomain/admin/products/15 will essentially be looking for a method in your Products controller named 15(). Which obviously doesn't exist. See the Controllers User Guide page for a good explanation of how the URI structure works.

You need to set up a route that tells the pagination URIs to point back to the index() method.

$route['admin/products/:num'] = 'admin/products';

It could be a couple other things, but that's my best guess based on your code.

You are a superstar, that got it!


Theme © iAndrew 2016 - Forum software by © MyBB