제목 | 게시판을 만들고 있는데 페이지에서 뒤에값이 중복돼서 셀렉트가 되는 이유를 알고싶습니다. | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 코린이 | 작성시각 | 2018/01/12 13:48:12 |
|
|||
제가 mysql의 데이터를 불러와서 셀레트해서 게시판을 만들고 있습니다. 그런데 페이지네이션을 하는데 앞의값이 중복되어서 뒤에다시나옵니다. 예를 들면 1번페이지에서 60번~50번까지의 데이터가 보여진다고하면 2번페이지에서는 58번~48번까지의 데이터가 보여지는식으로 계속 나옵니다. 도대체 어디가 문제인지 모르겠습니다. 제발 알려주시면 감사하겠습니다. 밑의소스는 컨트롤러의 인덱스펑션입니다. public function index() { $pname=$this->input->get('pname', TRUE); //상품명
$data['s_pname']=$pname; /////////////////////////////////검색 $_GET['pname'] = $pname; /////////////////////////////////검색
$this->load->library('pagination'); $config['first_url'] = site_url() . '/board/index/page/1?'.http_build_query($_GET); $config['base_url']=site_url() . '/board/index/page'; $config['total_rows']=$this->board_model->lists('num_rows', '', '', $pname);/////////////////////////////////검색 $config['per_page'] = 10; $config['num_links'] = 5; $config['use_page_numbers'] = TRUE; $config['suffix'] = '?'.http_build_query($_GET,'',"&"); $this->pagination->initialize($config); $data['pagination']=$this->pagination->create_links(); $data['num_rows']=$config['total_rows'];
$page = $this->uri->segment(4, 1); if ($page > 1) { $offset=(($page / $config['per_page'])) * $config['per_page']; } else { $offset=($page - 1) * $config['per_page']; } $data['list']=$this->board_model->lists('', $offset, $config['per_page'], $pname);/////////////////////////////////검색 $this->load->view('index', $data); } |
|||
다음글 | api 호출 분산 처리 (2) | ||
이전글 | 파일업로드 관련하여 문의드립니다. (4) | ||
배강민
/
2018/01/12 14:03:58 /
추천
0
per_page = 10
1p의 offset : 0 (0~9)
2p의 offset : 10 (10~19)
3p의 offset : 20 (20~29)
이 되어야하는데, 코린이님의 로직에 따르면 2페이지부터 아래와 같이 됩니다.
1p의 offset : 0 (0~9)
2p의 offset : 2 (2~11)
3p의 offset : 3 (3~12)
offset 계산을 그냥 $offset=($page - 1) * $config['per_page']; 이거만 사용하시면 됩니다.
|
코린이
/
2018/01/12 14:07:20 /
추천
0
배강민님 정말 감사드립니다. 제가 소스코드로 받아서 고쳐쓰고있는거라서 제대로 모르고있었는데 정말 그거만 쓰니까 바로되네요 어디 나와있는곳도 없고해서 답답했는데 정말 감사합니다^^ |