Codeigniter Pagination не фильтруется правильно - PullRequest
0 голосов
/ 22 апреля 2020

Я использую Codeigniter Pagination, чтобы найти мои данные. У меня есть таблица «продукты» в базе данных и включает в себя продукты. Существует проблема при фильтрации всего продукта с использованием условия «где» по названию бренда. Codeigniter приносит мне правильные значения для первой страницы. но когда я нажимаю второй или другие страницы, значения не верны. Вот мои php коды

public function searchproduct()
    {


        $viewData = new StdClass();
        $viewData->viewFolder = "product";


        $searchProduct=$this->input->post("searchProduct");



        /*here is $searchProdcut value
         *array(
         *      [0]=>1,
         *      [1]=>4
         *)
         */

        $this->db->select('*');

        if(!empty($searchProduct)){
            $this->db->where_in("brandname", $searchProduct);
        }

        $this->db->order_by("Id DESC");
        $results= $this->db->get("products")->result();

        //Pagination start

        $this->load->library("pagination");

        $config["base_url"] = base_url("product/searchproduct/"); 
        $config["total_rows"] = count($results); 
        $config["uri_segment"] = 3; 
        $config["per_page"] =1;
        $config["num_links"] = 5;
        $config['full_tag_open'] = '<div class="pagination-content text-center"><ul>';
        $config['full_tag_close'] = '</ul></div><!--pagination-->';


        $config['next_link'] = '>';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';

        $config['prev_link'] = '<';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';

        $config['cur_tag_open'] = '<li ><a class="active" href="">';
        $config['cur_tag_close'] = '</a></li>';

        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';





        $this->pagination->initialize($config);

        $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;



        $this->db->select('*');

        if(!empty($searchProduct)){
            $this->db->where_in("brandname", $searchProduct);
        }

        $this->db->order_by("Id DESC");
        $this->db->limit($config["per_page"], $page);
        $datalar= $this->db->get("products")->result();


        $viewData->datas = $datalar;
        $viewData->links = $this->pagination->create_links();
        $viewData->productcount= $config["total_rows"];
        $viewData->pagination_limit = $config["per_page"];

       $this->load->view("urunler/product/index", $viewData);

, а вот html коды страниц.

                               <?php if (!empty($datas)) { ?>
                                        <div class="pagination-container">
                                            <div class="container">
                                                <div class="row">
                                                    <div class="col-lg-12">
                                                        <!--=======  pagination-content  =======-->
                                                        <?php print_r($links); ?>

                                                        <!--=======  End of pagination-content  =======-->
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    <?php } ?>

На самом деле я не могу решить проблему, почему она произошла. Все кажется правдой.

...