제목 | 검색 예제에서 Database 에러 (LIMIT -5, 5 부근) 발생하는 경우 | ||
---|---|---|---|
글쓴이 | 빠르게정확하게 | 작성시각 | 2015/07/04 10:28:55 |
|
|||
'댓글'을 검색했을 경우 A Database Error Occurred Error Number: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5, 5' at line 1 가 출력되는 경우, 역시나 일단 해결은 했습니다.Board.php 에서 $page = $this->uri->segment(5, 1); if( $page > 1 ) { $start = (($page/$config['per_page'])) * $config['per_page']; } else { $start =0; // $start = ($page-1) * $config['per_page'] 이 원래 코드인데, 여기서 에러. 0으로 바꾸면 되는데.. } 그니까 LIMIT -5 가 출력되는 이유는 $start 값이 -5가 되는데, $start 는 ($page -1) * 5 (예제에서 config['per_page']는 5로 설정되니까요!) 인거고 즉 $page = 0 이고.... $page 는 세그먼트값이 할당이 되는데, 저 위에도 되어있듯이 segment(5)에 값이 없으면 1이 되는거니까 사실 오류가 없어야 하는데, 자꾸 0이 되는건....! PHP는 0과 NULL 을 동률로 생각하니까 즉, 어디선가 NULL 값이 튀어나온다는건데, 그렇다면 여기에서 $this->uri->segment(5) 는 NULL인건...... 3.0 버젼이라 그런건가요? 아니면 뭔가 놓친게 있나..... 싶어서 이렇게 적어봤습니다. |
|||
다음글 | session로드하는 부분 막혀서 질문드립니다. (4) | ||
이전글 | 4.2 페이지 넘기기 초심자 좌충우돌.. (2) | ||
변종원(웅파)
/
2015/07/04 13:35:14 /
추천
0
|
빠르게정확하게
/
2015/07/04 14:17:11 /
추천
0
아!
$page = $this->uri->segment($uri_segment, 1); 로 바꿔줘야 되네요! 제 실습과정에서는 웅파님 말씀대로 5번째 세그먼트에 '댓글'이 할당되어 있었습니다. 제가 헤롱헤롱거리며 공부하느라 중요한 부분을 읽지 못했던 것 같습니다. 부끄럽네요.ㅠㅠ 죄송합니다. 웅파님 감사합니다! |
헤클
/
2015/07/26 04:20:07 /
추천
1
빠르게 정확하게 님처럼 저도 헤멧습니다.
지금 이시간에 코딩중인데요.. 제가 가지고 있는 2쇄 판 (2015년 1월 5일)자 판의 111P 에는 8번의 코딩과 10번의 코딩사이에..
//게시판 목록을 불러오기 위한 offset, limit 값 가져오기
$page = $this->uri->segment($uri_segment, 1);
이 부분이 두껍게 표시 되지않아.. 거의 1시간을 삽질 했습니다.
왜 결과값에서 쿼리에러가 나올까 하고..
물론 빨리 해결하려고 두꺼운부분만 코딩한것은 저의 잘못이지만...
책에 의존하는 독자로서는...
함정에 빠질수 밖에 없다고 봅니다.
이댓글이 없었다면... 얼마나 삽질을 했을지..
|
5번째 세그먼트가 있나 보세요.
http://cikorea.net/cibook/view/644/page/1/ 포럼주소를 예로 들면 5번째 세그먼트는 1이 되겠죠.