wr_num 관련 소스 질문 > 그누3질답

그누3질답

wr_num 관련 소스 질문 정보

그누보드 wr_num 관련 소스 질문

본문

결국 원하는 답변이 없길래 이것저것 다 뒤져보다가 의심가는 부분을 한군데 찾았습니다.

gnuboard.lib.php 파일에 있는 내용인데요.

// 게시판의 다음글 번호를 얻는다.
function get_next_num($table, $notice=0)
{
    // 공지사항일 경우 공지사항에서 가장 작은 번호를 얻고
    if ($notice == -1) {
        $sql1 = " select min(wr_num) from $table where wr_notice = '-1' ";
        $row1 = sql_fetch($sql1);
    }

    // 공지사항이 아닌글에서 가장 작은 번호를 얻어
    $sql2 = " select min(wr_num) from $table where wr_notice = '0' ";
    $row2 = sql_fetch($sql2);

    // 비교하여 작은 수에서 1 뺀 값을 반환
    if ((int)$row1[0] < (int)$row2[0]) {
        return ((int)$row1[0] - 1);
    } else {
        return ((int)$row2[0] - 1);
    }
}

이렇게 되어 있지요.
재미있는 것은 공지사항일 경우엔 제대로 비교가 되지만 공지글 후 새로 일반글을 쓰게 되면 비교할 때 일반글들 중에서만 wr_num 을 뽑아와서 비교를 하기 때문에 반드시 숫자 하나는 겹치는 wr_num 이 생기는 것 같습니다.

무슨 소리냐하면 기존에 마지막 글의 wr_num 이 -5 라 가정하면 공지글을 새로 쓸 때는 제대로 -6 이 먹히겠지만 그 이후 일반글을 새로 쓰게 될 때는 공지사항중 마지막 -6 번을 체크하지 않고 -5 번 글에서 체크를 하기 때문에 다시 -6 이 들어가게 되는 것입니다.  (위의 소스를 제가 제대로 이해한 거라면 그렇게 되겠지요.  상황은 맞아떨어지는데 헤헤;;)

어설프게 뻐긴 것처럼 이야기 했는데 어쨌든 이 부분을 고쳐야 루트님의 팁(관련글 같이표시하기)에서 문제가 없을 것 같은데요.

==본격적인 질문입니다.==

1. wr_num은 리스트용 넘버로 알고 있는데 그렇다면 굳이 위와 같이 따로 검사할 이유가 없지 않나요? 

2. 저는 저 부분을 비교구문 없이 막바로 가장 작은 수를 찾아서 들어가도록 하고 싶은데 어떻게 고쳐야 할까요?

3. 2번의 내용처럼 고쳤을 경우 문제가 생길 가능성이 있을까요?
  • 복사

댓글 전체

그런 방법으로 하면 페이지에 표시에는 문제가 없겠네요.  오호...  감사!  (잠수신공 깨서 죄송합니다. ㅎㅎㅎ)  그런데 운영자님께서 저부분에 대한 설명을 해주셨으면 하는데 요즘 바쁘신지 아니면 답변달 문제가 아닌지 안달아주시네요.

완두콩님 좋은 밤 되세요~ ^_^
1,2,3 모두 제겐 어렵네요...
(참고 정도나 되려나.. )

root님의 http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&wr_id=4082 에서요...
맨앞부분 sql 문장 만들때, 공지글은 아예 가져오지 않게 하면 어떨까요?

where wr_num = '$write[wr_num]' and wr_comment = 0                                <- 이렇게 된걸
where wr_num = '$write[wr_num]' and wr_comment = 0 and wr_notice = 0      <- 이렇게요...

보통 공지글엔 답변 안달리게 되어있고,
wr_num 이 달리는건 위에 설명하셨듯 공지글이냐, 공지글이 아니냐만 구분하는 듯 보이니까요...

위에 설명하신 상황으로만 "대충" 테스트 해보니, "대충" 되어보이긴 한데요...

( 디비스키마는 너무 어려버 ㅠㅜ)

----------------------------------------------------------------------

저런식으로 디비 구성한데는 뭔가 심오한 뜻이 있을수 도 있지 않을까... 하는 생각이 드는데요.
'리스트용 넘버(?)' 만으로만 본다면 좀 헷갈리게 되어있긴한데요,
이것저것 덧붙여서 생각하면, 무언가가 있을지도....
(어쩌면 그누 속도의 비밀이-_-a;;;)

'게시판 디비 구조' 라는 유혹에, 잔뜩 물오른 '잠수신공'이 깨어지네요...
© SIRSOFT
현재 페이지 제일 처음으로