2017-02-27 2 views
0

이것은 내 페이지 코드입니다. 각 코드에 20 개의 이미지를 표시 하겠지만 첫 페이지에 모든 이미지가 표시됩니다. 다시 page2를 클릭하면 동일한 이미지가 표시됩니다. 제발 내 코드를 검토하고 귀중한 제안을 해줘. 고마워.페이지 매김이 제대로 작동하지 않습니다

컨트롤러 :

public function onSectorClick() { 
    $id = $_GET["id"]; 
    $name = $_GET["name"]; 
    $this->session->set_userdata('sub1category_id', $_GET['id']); 
    $this->session->set_userdata('sub1category_name', $_GET['name']); 
    $this->onSectorClickCopy(); 
} 

public function onSectorClickCopy(){ 
    $this->load->model('Categories_model'); 
    $this->load->model('productdisplay_model'); 

    $data['ListMenuLevel1'] = $this->Categories_model->listsector1(); 

    $config = array(); 
    $config["base_url"] = base_url() . "index.php/welcome/onSectorClick?id=". $this->session->userdata('sub1category_id')."&name=". $this->session->userdata('sub1category_name'); 
    $total_row = $this->productdisplay_model->record_count(); 
    $config['total_rows'] = $total_row; 
    $config['per_page'] = 20; 
    $config['use_page_numbers'] = TRUE; 
    $config['num_links'] = 1; 
    $config['cur_tag_open'] = '&nbsp;<a class="current">'; 
    $config['cur_tag_close'] = '</a>'; 
    $config['next_link'] = 'Next'; 
    $config['prev_link'] = 'Previous'; 
    $this->load->library('pagination'); 
    $this->pagination->initialize($config); 
    /* 
    if($this->uri->segment(3)){ 
     $page = ($this->uri->segment(3)) ; 
    }else{ 
     $page = 1; 
    } 
    */ 
    $page = ($this->uri->segment(3) != '' ? $this->uri->segment(3) : 1); 
    //$offset = $config['per_page']*$page; 

    $offset = (($config['per_page']) * ($page - 1)) + 1; 
    $limit = $config['per_page'] * $page; 
    $data['sub1products'] = $this->productdisplay_model->sub1Productsmenu($this->session->userdata('sub1category_id'),$limit, $offset); 
    $str_links = $this->pagination->create_links(); 
    $data["links"] = explode('&nbsp;', $str_links); 
    $this->load->view('productlist', $data); 
} 

모델 :

public function record_count() { 
    return $this->db->count_all("sub1_category"); 
} 


public function sub1Productsmenu($id,$limit, $offset){ 
    return $this->db->where('main_categoryid_fk',$id)->get('sub1_category')->result(); 
    $this->db->where("sub1_category.id between '$offset' and '$limit'"); 
} 

public function sub1Productfetch($id) { 
    $query = $this->db->select('product_image,sub1_category_name,product_description'); 


    $this->db->from('sub3_category'); 
    $this->db->join('sub2_category', 'sub3_category.sub2_categoryid_fk=sub2_category.id', 'left'); 
    $this->db->join('sub1_category', 'sub2_category.sub1_categoryid_fk=sub1_category.id', 'left'); 
    //$this->db->join('maincategory', 'sub1_category.main_categoryid_fk=maincategory.id', 'left'); 
    $this->db->where('sub1_category.id',$id); 

    $this->db->order_by('rand()'); 
    $this->db->limit(1); 


    return $this->db->get()->result(); 

} 

보기 :

<div class="container-main"> 
<?php 
    foreach ($sub1products as $row) { 
     foreach ($this->productdisplay_model->sub1Productfetch($row->id) as $menu1) { 
?> 
    <!--<h5 class="product-head">Agriculture Products</h5>--> 
    <div class="col-xs-12 col-sm-4 col-md-3"> 
     <div class="prod-container"> 
      <a href="<?php echo base_url(); ?>index.php/welcome/onSectorClick1?id=<?php echo $row->id; ?>&name=<?php echo $row->sub1_category_name; ?>"> 
      <div class="prod_img"> 
       <img src="<?php echo 'data:image;base64,' . $menu1->product_image; ?>" width="100%"/> 
      </div> 
      <div class="prod_desc"> 
       <div class="prod-round-icon"></div> 
       <h4 class="prod_title"><?php echo $row->sub1_category_name; ?></h4> 
       <p class="prod_text"><?php echo $menu1->product_description; ?></p> 
      </div> 

      <div class="sub-products"> 
      <?php 
       $count = 0; 
       foreach ($this->productdisplay_model->sub2Productsmenu($row->id) as $menu2) { 
      ?> 

       <p><i class="fa fa-angle-right"></i> <?php echo $menu2->sub2_category_name; ?></p> 

       <?php 
        $count++; 
        if ($count == 3) { 
         break; 
        } 
       } 
       ?> 
      </div> 
      <div class="view-more"> view more</div> 
      </a> 
     </div> 
    </div> 
<?php 
     } 
    } 
?> 
</div> 
<div class="center"> 
    <ul class="pagination"> 
    <?php 
     foreach ($links as $link) { 
      echo "<li>" . $link . "</li>"; 
     } 
    ?> 
    </ul> 
</div> 

답변

4

내 코드에서 방금 세션 변수를 변경했습니다. 모든 것이 정상적으로 작동합니다.

컨트롤러

public function onSectorClick() { 

      $id = $_GET["id"]; 

      $this->session->set_userdata('sub1_id', $_GET['id']); 

      $this->onSectorClickCopy(); 
     } 

     public function onSectorClickCopy(){ 
      if ($this->session->userdata('log_in') == TRUE) { 
       $id = $this->session->userdata('id'); 
       $this->load->model('cart_model'); 
       $data["count"] = $this->cart_model->count_rows($id); 
      } 



      $data['ListMenuLevel1'] = $this->Categories_model->listsector1(); 

      $config = array(); 
      $config["base_url"] = base_url() . "index.php/welcome/onSectorClickCopy"; 
      $total_row = $this->productdisplay_model->record_count($this->session->userdata('sub1_id')); 
      $config['total_rows'] = $total_row; 
      $config['per_page'] = 20; 
      //$config['uri_segment'] = 3; 
      $config['use_page_numbers'] = TRUE; 
      //$config['page_query_string'] = TRUE; 
      //$config['reuse_query_string'] = FALSE; 
      $config['num_links'] = 1; 
      $config['cur_tag_open'] = '&nbsp;<a class="current">'; 
      $config['cur_tag_close'] = '</a>'; 
      $config['next_link'] = 'Next'; 
      $config['prev_link'] = 'Previous'; 
      $this->load->library('pagination'); 
      $this->pagination->initialize($config); 
      /* if($this->uri->segment(3)){ 
       $page = ($this->uri->segment(3)) ; 
       } 
       else{ 
       $page = 1; 
       } */ 
      $page = ($this->uri->segment(3) != '' ? $this->uri->segment(3) : 1); 
      //$offset = $config['per_page']*$page; 
      $offset = (($config['per_page']) * ($page - 1)); 
      $limit = $config['per_page']+1; 
      $data['sub1products'] = $this->productdisplay_model->sub1Productsmenu($this->session->userdata('sub1_id'),$limit, $offset); 
      $str_links = $this->pagination->create_links(); 
      $data["links"] = explode('&nbsp;', $str_links); 

      $this->load->view('productlist', $data); 

     } 

모델 나는 당신의 suggestion.But를 통과

public function record_count($id) { 
     $this->db->select('*'); 
     $this->db->from('sub1_category'); 
     $this->db->where('main_categoryid_fk', $id); 
     $this->db->order_by("sub1_category.main_categoryid_fk "); 
     $query = $this->db->get(); 
     return $query->num_rows(); 

    } 


    public function sub1Productsmenu($id,$limit, $offset){ 

     $this->db->select('*'); 
     $this->db->from('sub1_category'); 
     $this->db->where('main_categoryid_fk', $id); 
     $this->db->order_by("sub1_category.main_categoryid_fk "); 
     $this->db->limit($limit, $offset); 
     return $this->db->get()->result(); 

    } 

    public function sub1Productfetch($id) { 


     $query = $this->db->select('product_image,sub1_category_name,product_description'); 
     $this->db->from('sub3_category'); 
     $this->db->join('sub2_category', 'sub3_category.sub2_categoryid_fk=sub2_category.id', 'left'); 
     $this->db->join('sub1_category', 'sub2_category.sub1_categoryid_fk=sub1_category.id', 'left'); 
     $this->db->join('maincategory', 'sub1_category.main_categoryid_fk=maincategory.id', 'left'); 
     $this->db->where('sub1_category.id',$id); 

     //$this->db->order_by('rand()'); 
     $this->db->limit(1); 


     return $this->db->get()->result(); 

    } 
+0

답변을 자세히 설명해 주시겠습니까? –

2

난 당신의 코드에서 보듯 :

public function sub1Productsmenu($id,$limit, $offset){ 
    return $this->db->where('main_categoryid_fk',$id)->get('sub1_category')->result(); 
     $this->db->where("sub1_category.id between '$offset' and '$limit'"); 
} 

잘못된 ";" 두 번째 줄에. 항상 WHERE 조건이 적용되지 않기 때문에 모든 기록을 반환합니다.

+0

다른 페이지로 paginating되지 않은 이미지가 하나의 page.It에 표시 할 수 있습니다. – Prasad

관련 문제