··조회 10,030
[re] 페이지링크때문에 글올렸었는데여...
>안녕하세여?
>저번에 페이지링크때문에 글을 올린 사람입니다.
>언제쯤.. 시간이 나실지 궁금해서요. ^^
>시간되시면 소스좀 봐주세요.
안녕하세요. 답변이 많이 늦었습니다.
타인이 만든 소스를 보는 건 정말 괴롭습니다. 한눈에 읽혀지지 않고, 특히 이곳 강좌에서 다루지 않은 로직이 중간중간에 섞여있을 때는 더더군다나 힘듭니다. 프로그래머가 어떤 의도로 그렇게 만들었는지를 곰곰히 생각해봐야하니까요.
송은주님의 게시판은 다음과 같은 문제가 발생합니다.
* 전체 글 수 : 123개
* 한 페이지에 보여주는 글 목록 수 : 12개
* 한 페이지에 보여주는 페이지 링크 수 : 10개
잘못된 거 짚어보면요...
이해가 되셨나요?
소스 보다가 눈 빠지는 줄 알았습니다. ^^

>저번에 페이지링크때문에 글을 올린 사람입니다.
>언제쯤.. 시간이 나실지 궁금해서요. ^^
>시간되시면 소스좀 봐주세요.
안녕하세요. 답변이 많이 늦었습니다.
타인이 만든 소스를 보는 건 정말 괴롭습니다. 한눈에 읽혀지지 않고, 특히 이곳 강좌에서 다루지 않은 로직이 중간중간에 섞여있을 때는 더더군다나 힘듭니다. 프로그래머가 어떤 의도로 그렇게 만들었는지를 곰곰히 생각해봐야하니까요.
송은주님의 게시판은 다음과 같은 문제가 발생합니다.
* 전체 글 수 : 123개
* 한 페이지에 보여주는 글 목록 수 : 12개
* 한 페이지에 보여주는 페이지 링크 수 : 10개
- 두번째 블록에서 보여줄 페이지 링크는 [11] 만 보여야 하는데,
[11]~[20]까지 보인다.
이게 주된 질문 요지였죠?
- 그런데 하나더,
한 페이지에 보여주는 글 목록의 수가 11개밖에 되지 않는다.
나머지 하나는 어디 간 걸까요?
잘못된 거 짚어보면요...
- config.txt 파일에서 $start를 정의하였습니다.
그런데 list.txt 파일을 보니 41행에 또 $start를 정의했더군요. 수식도 다르구요. $Title_Num 이 두번째에선 $ShortCut_Num으로 바뀌었더군요.
두번째 정의한 것이 잘못된 것 같습니다.
- list.txt의 53행은 잘못되었습니다.
mysql_fetch_array() 함수를 53행에서 한번 사용하고,
다시 54행에서 사용하고 있습니다.
이것때문에 한 페이지에서 12개의 목록이 보이지 않고, 11개만 보이게 된 겁니다. 미리 한번을 실행해버렸으니...
53행의 if문은 while 문 안에서 다른 방식으로 해결하는 게 좋습니다. 절대 mysql_fetch_array()문을 두번 사용하시지는 말구요.
- 마지막으로 가장 중요한 거! 이것이 주된 질문이었으니까요.
222행을 보면 블록의 끝 페이지 번호를 정의하는 문장이 있습니다.
222행처럼하는 것이 맞는데요,
단, 현재의 블록이 마지막 블록일 경우에는 $last의 값이 $total_page의 값이 되어야 합니다. 블록마다 무조건 10개씩 보여주면 안되쟎아요.
그래서 222행 아래에 다음과 같은 코드가 추가되어야 합니다.
if ($block >= $total_block) {
$last = $total_page;
}
이해가 되셨나요?
소스 보다가 눈 빠지는 줄 알았습니다. ^^

댓글 1
정말로 감사드립니다. 눈은 괜찮으신거죠? ^^
정말로 감사해요.