| 제목 | 염치없지만 페이징 관련하여 또 질문드립니다.. | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 창쓰 | 작성시각 | 2017/08/04 14:34:28 |
|
|
|||
|
질문 올린지 얼마 되지않았는데, 또 질문을 올리게 되서 정말 죄송합니다.. 여러 시도를 해보고, 코드이그나이터 한국포럼에도 찾아보고 밑에 있는 링크를 참고하였고, 구글링도 해보고, 코드이그나이터 프레임워크 책도 참고하였지만.. 도저히 해결방안이 나오지않아 또 한번 이렇게 질문을 드립니다.
현재 문제점--------- 컨트롤러에 문제가 있다고 생각하여, 컨트롤러의 소스를 첨부합니다.
public function lists(){
$this->load->view('head');
$this->load->model('write_model');
$this->load->helper(array('url','HTML'));
$this->load->library('pagination');
//페이지네이션 설정
$config['base_url'] = '/index.php/write/lists';//페이징주소
$config['total_rows'] = $this -> write_model -> get_list($this -> uri -> segment(3), 'count');//게시물전체개수
$config['per_page'] = 10; //한페이지에 표시할 게시물수
$config['uri_segment'] = 5; //페이지 번호가 위치한세그먼트 "이 부분이 정말 이해가 안감"
$this -> pagination -> initialize($config);//페이지네이션 초기화
$data['pagination'] = $this -> pagination -> create_links(); //페이지링크를 view에서 사용할 변수로 할당
//게시판 목록을 불러오기위한 offset,limit 값 가져오기
$page = $this -> uri -> segment(5, 1);
if ($page > 1) {
$start = (($page / $config['per_page'])) * $config['per_page'];
} else {
$start = ($page - 1) * $config['per_page'];
}
$limit = $config['per_page'];
$data['list'] = $this -> write_model -> get_list($this -> uri -> segment(3), '', $start, $limit);
$this->load->view('/lists', $data);
$this->load->view('footer');
}
혹시몰라 모델 소스도 첨부합니다.
function get_list($table = 'bookingdb', $type = '', $offset = '', $limit = '') {
$limit_query = '';
if ($limit != '' OR $offset != '') {
// 페이징이 있을 경우 처리
$limit_query = ' LIMIT ' . $offset . ', ' . $limit;
}
$sql = "SELECT * FROM bookingdb ORDER BY id DESC " . $limit_query;
$query = $this -> db -> query($sql);
if ($type == 'count') {
$result = $query -> num_rows();
} else {
$result = $query -> result();
}
return $result;
}
너무 잦은 질문에 불쾌감을 주었다면 정말로 선배님들께 죄송합니다. 문과생 출신으로, 개발을 하고 싶어 열심히 배우고 싶습니다. 답변 달아주시는 선배님들의 은혜를 잊지않고, 꼭 전문가가 되어, 새로 시작하시는 분들에게 도움이 될수있도록 하겠습니다. |
|||
| 다음글 | csrf ajax사용시 403 (forbidden) e... (1) | ||
| 이전글 | 페이지네이션 작업중 오류 (8) | ||
|
배강민
/
2017/08/04 14:59:32 /
추천
0
|
|
창쓰
/
2017/08/04 15:04:21 /
추천
0
@배강민 저도 해당 게시글보고 3을 넣고 시도하였지만, 페이지는 넘어가지만, 테이블이 안바뀌네요ㅠ ㅠㅠ
|
|
창쓰
/
2017/08/04 15:06:47 /
추천
0
|
|
배강민
/
2017/08/04 15:08:57 /
추천
0
흠 근데 다른부분도 좀 이상하네요. 모델 메서드가 function get_list($table = 'bookingdb', $type = '', $offset = '', $limit = '') { 인데 $table 자리에 $this -> uri -> segment(3)를 인수로 사용하셔서 이상하다 봤는데, $table을 사용하지 않으셔서 문제는 없어 보이긴한데, 나중에 수정하시려는건지 모르겠지만, 테이블명을 받아서 사용하시려는듯하긴한데, 현재이 코드상으로는 이상하긴하네요. |
|
창쓰
/
2017/08/04 15:14:00 /
추천
0
@배강민 넵넵~ 맞습니다. 제가 $table을 넣어서 sql에 넣었는데, 테이블을 못 읽더라구요 ㅠㅠ 그래서 임시로 직접 입력해놨습니다 ㅠㅠ 정말로 어렵군요 ㅠㅠㅠ 일단는 @이강민 선배님말씀처럼 모델 부분 수정을 좀 해봐야할 것 같네요.ㅠㅠ 감사합니다 ㅠ |
|
창쓰
/
2017/08/04 15:24:49 /
추천
0
아이고 해결이 안되네요 ㅠㅠ model 부분에서 $sql = "SELECT * FROM " .table. " ORDER BY id DESC " . $limit_query; 을 넣으면, 테이블명을 읽어오지를 못해서.. booking db라고 넣어줬습니다. 너무 어렵네요..ㅎㅎ 컨트롤러 문제인것같은데.. 하단의 숫자를 누르면 url은 잘 바뀌는데, 테이블 내용들이 안 바뀌는 문제가 있네염..ㅠㅠ |
|
닉
/
2017/08/04 16:31:05 /
추천
0
쿼리 출력해서 확인해보시면 답 나올겁니다.
|
|
배강민
/
2017/08/04 16:36:33 /
추천
0
$this -> uri -> segment(3) 여기에 테이블명이 받아지는게 맞긴맞나요?
|
|
뫄뫄잉뿌
/
2017/08/04 17:10:14 /
추천
0
오타,,,는 아니겠죠? $table
|
|
하늘치
/
2017/08/04 17:25:54 /
추천
0
url 주소가 아래처럼 이루어져 있다는 거죠? 처음 접속시 : 도메인/index.php/write/lists/
2페이지 클릭: 도메인/index.php/write/lists/2
도메인/index.php/write/bookingdb/lists/3 이번에는 테이블명이 들어가 있기 때문에, 페이지 숫자를 가져오려면 $page = $this -> uri -> segment(4,1) 라고 해야 합니다.
$start = (($page / $config['per_page'])) * $config['per_page']; 이런 소스가 있지요? $start = ($page - 1) * $config['per_page']; 이렇게 바꿔주시면 됩니다.
아, 그리고.. 배강민님이 말씀하신 부분 꼭 확인해보세요. 컨트롤러에서 모델 function 불러오는 부분 있죠? 그런데, 모델에서는
|
|
창쓰
/
2017/08/06 13:29:35 /
추천
0
@배강민 @하늘치 @뫄뫄잉뿌님 다들 감사합니다 오류를 확인했습니다. 어디가 문제였냐면, |
|
창쓰
/
2017/08/06 13:29:55 /
추천
0
$page = $this -> uri -> segment(5, 1); 이부분이 문제였습니다~
|
|
창쓰
/
2017/08/06 13:30:11 /
추천
0
3,1 로 바꾸니 바로 적용되더라구요~ 감사합니다~ ㅎㅎ
|
|
창쓰
/
2017/08/06 13:35:48 /
추천
0
알고보면 엄청 쉬운건데... 이걸 8시간 9시간걸려서 해결했다니..ㅠㅠ 선배님들 도움이 아니였으면 해결하지못했을겁니다. 정말 감사합니다~ ㅎㅎ |
http://www.codeigniter-kr.org/bbs/view/qna?idx=18290&page=2&view_category=&lists_style= 와 동일한 문제로 보이네요.
$config['uri_segment'] = 5; //페이지 번호가 위치한세그먼트 "이 부분이 정말 이해가 안감"
여기에 3이 들어가야합니다.