Problem z paginacja w Code Igniter

0

Witam mam problem z listowaniem ksiazek z bazy. W swojej aplikacji mam 3 funkcje. Jedna odpowiada za wyswietlenie kategorii w menu, druga za wyswietlenie podkategorii i trzecia za wyswietlenie odpowiednich ksiazek z danej podkategorii. Funkcja get_books_by_subcategory pobieraa z adresu uri->segment(3). Chcialbym w tej samej funkcji zrobic jeszcze listowanie gdzie za offset przyjmuje segment(4), ale niestety wyswietlaja mi sie tylko ksiazki z pierwsze podkategorii, mimo i z w pasu adresu segemt 3 zmienia sie prawidlowo, tak jak i 4 zreszta. Prosze o pomoc.
Oto kod kontrolera:

 

 function get_category()
        {
           
            $query = $this->Kategorie_model->get_category();
            $this->response['podkategorie'] = '';
            $this->response['kategorie'] = '';
            $podkategorie = '';
            
            


            if($query->num_rows() > 0)
            {
                foreach($query->result() as $item)
                {
                    $podkategorie = $this->get_sub_category($item->CAT_ID);
                    
                    $this->response['kategorie'] .=  $this->load->view('Ksiegarnia/left', array('kategorie' =>$item, 'podkategorie'=>$podkategorie), true);
                }
            }

            $data = $this->response['kategorie'];
            return $data;

        }





         function get_sub_category($id)
        {

            
               $this->response['wynik'] = '';

           
               $query = $this->Kategorie_model->get_sub_category($id);
               
               if($query->num_rows() > 0)
               {


                    foreach($query->result() as $row)
                    {

                       $link = site_url('ksiegarnia/get_books_by_subcategory/'.$row->SUBC_ID);
                        $this->response['wynik'] .= '<div class="subcat_name"><a href = "'.$link.'">'.$row->SUBC_Name.'</a></div>';

                    }
               }
               else
               {
                    $this->response['wynik'] = '<H1>BRAK DANYCH </H1>';
               }

          
                return $this->response['wynik'];
        }



        function get_books_by_subcategory()
        {
            $widok['center'] = '';
             $widok['left'] = $this->get_category();
             $widok['right'] = $this->load->view('Ksiegarnia/right', '', true);
              $id = $this->uri->segment(3);
            if(isset($id) and is_numeric($id))
            {
                 $query = $this->Kategorie_model->get_books_by_subcategory($id,$this->uri->segment(4));


                 if($query->num_rows() > 0)
                 {
                        
                    foreach($query->result() as $item)
                    {

                       
                        $widok['center'] .=  $this->load->view('Ksiegarnia/get_books', array('data' =>$item), true);

                    }
                }
                else
                {
                    $widok['center'] = $this->load->view('Ksiegarnia/get_books', array('tytul' =>'<h1>brak danych</h1>'), true);;
                }

                $widok['center'] .= $this->pagination->create_links();
                 $this->load->view('Ksiegarnia/index', $widok);

            }

           

        }



A to jest model:

 


     function get_books_by_subcategory($id, $offset=0)
        {

                      $config['base_url'] = 'http://lukaszbielecki.cba.pl/ksiegarnia/CI/index.php/ksiegarnia/get_books_by_subcategory/'.$id.'/';
                      $config['per_page'] = 7;
                      $this->db->where('SUB_CATEGORY_SUBC_ID', $id);


                      $config['total_rows'] = $this->db->get('books')->num_rows();
                      $config['num_links'] = 20;

                       $this->pagination->initialize($config);
             return   $this->db->get('books',$config['per_page'],$offset);
              //$wynik = $this->db->query("Select * from books where SUB_CATEGORY_SUBC_ID = '".$id."'");
              //return $wynik;
        }


0

Pokaż jeszcze główną funkcję (jej fragment, głównie strukturę) i/lub URL.
W CodeIgniterze parametry funkcji wypełniane są jako kolejne segmenty url,
np index.php/funkcja_kontrolera/par1/par2/par3 ...

EDIT:

W kontrolerze:

function get_books_by_subcategory()

Na:

function get_books_by_subcategory($id, $offset)

Wtedy w kontrolerze w funkcji będziesz miał dostępną zmienną $offset, przekazywaną jako drugi parametr (po id). Wystarczy go przekazać do modelu. Ustaw też jakiś limit przy
GET w modelu.

return   $this->db->get('books',$config['per_page'], $limit, $offset);

Nie musisz się bawić w segmenty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1