Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter中的分页URL问题_Php_Mysql_Codeigniter_Pagination - Fatal编程技术网

Php codeigniter中的分页URL问题

Php codeigniter中的分页URL问题,php,mysql,codeigniter,pagination,Php,Mysql,Codeigniter,Pagination,我在我的站点中添加了分页,它似乎可以很好地显示每页的结果,但在单击“下一页”后,显示错误为“未找到页面” 基本url也是正确的。在模型中,还有一个过滤器代码。单击第二页后,错误显示为404页未找到 启动控制器代码: public function index() { $this->load->library('pagination'); $config = array(); $total_rows = count($this->{$this->mo

我在我的站点中添加了分页,它似乎可以很好地显示每页的结果,但在单击“下一页”后,显示错误为“未找到页面” 基本url也是正确的。在模型中,还有一个过滤器代码。单击第二页后,错误显示为404页未找到

启动控制器代码:

public function index()
{
    $this->load->library('pagination');
    $config = array();
    $total_rows = count($this->{$this->model_name}->get($config));

    $config['base_url'] = base_url('deals');
    $config['uri_segment'] = 3;
    $config['total_rows'] = $total_rows;
    $config['per_page'] = 8;
    $per_page = $config['per_page'];
    $offset = $config['per_page'];
    $config['num_links'] = 3;
    $config['full_tag_open'] = '<ul class="pagination ">';
    $config['full_tag_close'] = '</ul>';
    $config['first_tag_open'] = '<li class=" page-item page-link">';
    $config['first_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li class=" page-item page-link">';
    $config['last_tag_close'] = '</li>';
    $config['next_link'] = 'Next';
    $config['next_tag_open'] = '<li class="page-item page-link">';
    $config['next_tag_close'] = '</li>';
    $config['prev_link'] = 'Prev';
    $config['prev_tag_open'] = '<li class=" page-item page-link">';
    $config['prev_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class=" page-item page-link active"><a 
    href="#">';
    $config['cur_tag_close'] = '</a></li>';
    $config['num_tag_open'] = '<li class=" page-item page-link">';
    $config['num_tag_close'] = '</li>';
    $this->pagination->initialize($config);
    $this->data['pagination'] = $this->pagination->create_links();
    $segment = (($this->uri->segment(3)) ? $this->uri->segment(3):0);
    /*---Pagination script ends here----*/

    $this->data['deals'] = $this->deals_model->get($filters, 
    $sort_filters,8,$segment);
}
public function get($filters = [], $sort_filters = [], $limit = 0, $offset = 0, $sort_filters_mobile = []) 
{
    $this->db- 
>select('deals.*,deals.expiry_date_time,categories.category_name,categories.seo_url as category_seo_url,sub_categories.sub_category_name,sub_categories.seo_url as sub_category_seo_url,stores.store_name,stores.is_direct_link');

    $this->db->from('deals');
    $this->db->join('categories', 'categories.id=deals.categories_id');
    $this->db->join('sub_categories', 
    'sub_categories.id=deals.sub_categories_id');
    $this->db->join('stores', 'stores.id=deals.stores_id');
    $this->db->where("deals.status", 1);
    $this->db->where("stores.current_status", 'Active');
    foreach ($filters as $key => $value)
    {
        if (is_array($value))
        {
           if ($key == 'deals.tags') {
               $cond = array();
               foreach ($value as $key => $val) {
                 $cond[] = 'FIND_IN_SET("' . $val . '",deals.tags) != 0';
               }

               $this->db->where('(' . implode(' OR ', $cond) . ')');
           }
           else
           {
               $key_array = explode(' ', $key);
               if (isset($key_array[1]) && ($key_array[1] == "!="))
               {
                   $this->db->where_not_in($key_array[0], $value);
               }
               else 
               {
                   $this->db->where_in($key, $value);
               }

           }
        }
        elseif ($key == 'deals.deal_title')
        {
            $this->db->like($key, $value);
        }elseif ($key == 'deals.tags') {
            $this->db->where('FIND_IN_SET("' . $value . '",deals.tags) !=', 0);
        } else {
           $this->db->where($key, $value);
        }
    }

    foreach ($sort_filters as $key => $value)
    {
        $this->db->order_by($key, $value);
    }

    if ($limit != 0) 
    {
        if ($offset != 0) {
           $this->db->limit($limit, ($offset * $limit));
        } else {
           $this->db->limit($limit);
        }
    }
    $data = $this->db->get()->result();

    if ($data) 
    {
        foreach ($data as $item) 
        {
            if ($item->current_status == 'Active') {
                $item->current_status_bootstrap_class = 'primary';
            } else {
                $item->current_status_bootstrap_class = 'danger';
            }

            if ($item->deal_type == 'DEAL') {
                $item->deal_type_bootstrap_class = 'primary';
                $item->deal_type_text = 'Deal';
            } else {
                $item->deal_type_bootstrap_class = 'success';
                $item->deal_type_text = 'Offer & Coupon';
            }
            $item->image = FILE_UPLOADED_PATH . $item->image;
        }
        return $data;
    }
    return [];
}
<div class="row">
    <div class="col-md-12">
        <div class="text-center">
            <?= $pagination ?>
        </div>
    </div>
</div>
开始查看代码:

public function index()
{
    $this->load->library('pagination');
    $config = array();
    $total_rows = count($this->{$this->model_name}->get($config));

    $config['base_url'] = base_url('deals');
    $config['uri_segment'] = 3;
    $config['total_rows'] = $total_rows;
    $config['per_page'] = 8;
    $per_page = $config['per_page'];
    $offset = $config['per_page'];
    $config['num_links'] = 3;
    $config['full_tag_open'] = '<ul class="pagination ">';
    $config['full_tag_close'] = '</ul>';
    $config['first_tag_open'] = '<li class=" page-item page-link">';
    $config['first_tag_close'] = '</li>';
    $config['last_tag_open'] = '<li class=" page-item page-link">';
    $config['last_tag_close'] = '</li>';
    $config['next_link'] = 'Next';
    $config['next_tag_open'] = '<li class="page-item page-link">';
    $config['next_tag_close'] = '</li>';
    $config['prev_link'] = 'Prev';
    $config['prev_tag_open'] = '<li class=" page-item page-link">';
    $config['prev_tag_close'] = '</li>';
    $config['cur_tag_open'] = '<li class=" page-item page-link active"><a 
    href="#">';
    $config['cur_tag_close'] = '</a></li>';
    $config['num_tag_open'] = '<li class=" page-item page-link">';
    $config['num_tag_close'] = '</li>';
    $this->pagination->initialize($config);
    $this->data['pagination'] = $this->pagination->create_links();
    $segment = (($this->uri->segment(3)) ? $this->uri->segment(3):0);
    /*---Pagination script ends here----*/

    $this->data['deals'] = $this->deals_model->get($filters, 
    $sort_filters,8,$segment);
}
public function get($filters = [], $sort_filters = [], $limit = 0, $offset = 0, $sort_filters_mobile = []) 
{
    $this->db- 
>select('deals.*,deals.expiry_date_time,categories.category_name,categories.seo_url as category_seo_url,sub_categories.sub_category_name,sub_categories.seo_url as sub_category_seo_url,stores.store_name,stores.is_direct_link');

    $this->db->from('deals');
    $this->db->join('categories', 'categories.id=deals.categories_id');
    $this->db->join('sub_categories', 
    'sub_categories.id=deals.sub_categories_id');
    $this->db->join('stores', 'stores.id=deals.stores_id');
    $this->db->where("deals.status", 1);
    $this->db->where("stores.current_status", 'Active');
    foreach ($filters as $key => $value)
    {
        if (is_array($value))
        {
           if ($key == 'deals.tags') {
               $cond = array();
               foreach ($value as $key => $val) {
                 $cond[] = 'FIND_IN_SET("' . $val . '",deals.tags) != 0';
               }

               $this->db->where('(' . implode(' OR ', $cond) . ')');
           }
           else
           {
               $key_array = explode(' ', $key);
               if (isset($key_array[1]) && ($key_array[1] == "!="))
               {
                   $this->db->where_not_in($key_array[0], $value);
               }
               else 
               {
                   $this->db->where_in($key, $value);
               }

           }
        }
        elseif ($key == 'deals.deal_title')
        {
            $this->db->like($key, $value);
        }elseif ($key == 'deals.tags') {
            $this->db->where('FIND_IN_SET("' . $value . '",deals.tags) !=', 0);
        } else {
           $this->db->where($key, $value);
        }
    }

    foreach ($sort_filters as $key => $value)
    {
        $this->db->order_by($key, $value);
    }

    if ($limit != 0) 
    {
        if ($offset != 0) {
           $this->db->limit($limit, ($offset * $limit));
        } else {
           $this->db->limit($limit);
        }
    }
    $data = $this->db->get()->result();

    if ($data) 
    {
        foreach ($data as $item) 
        {
            if ($item->current_status == 'Active') {
                $item->current_status_bootstrap_class = 'primary';
            } else {
                $item->current_status_bootstrap_class = 'danger';
            }

            if ($item->deal_type == 'DEAL') {
                $item->deal_type_bootstrap_class = 'primary';
                $item->deal_type_text = 'Deal';
            } else {
                $item->deal_type_bootstrap_class = 'success';
                $item->deal_type_text = 'Offer & Coupon';
            }
            $item->image = FILE_UPLOADED_PATH . $item->image;
        }
        return $data;
    }
    return [];
}
<div class="row">
    <div class="col-md-12">
        <div class="text-center">
            <?= $pagination ?>
        </div>
    </div>
</div>