게시판에서 수정버튼 클릭시 소스 내용(간단) 질문

게시판에서 수정버튼 클릭시 소스 내용(간단) 질문

QA

게시판에서 수정버튼 클릭시 소스 내용(간단) 질문

본문

게시판에서 수정버튼 클릭시 소스 내용 질문

 

위치 : bbs/write.php

 

} else if ($w == 'u') { // 수정 버튼 클릭했을때

- 생략 -

    // 원글만 구한다.    <= 질문1) 왜 원글만 구하는지???

    $sql = " select count(*) as cnt from {$write_table}

                where wr_reply like '{$reply}%'

                and wr_id <> '{$write['wr_id']}'  //  질문2) 원글만 구하는데, 왜 wr_id 와 $write['wr_id']가 서로 달라야하죠?

                and wr_num = '{$write['wr_num']}'

                and wr_is_comment = 0 ";

 

    $row = sql_fetch($sql);

    if ($row['cnt'] && !$is_admin) 

        alert('이 글과 관련된 답변글이 존재하므로 수정 할 수 없습니다.\\n\\n답변글이 있는 원글은 수정할 수 없습니다.');

 

    $sql = " select count(*) as cnt from {$write_table}  

                where wr_parent = '{$wr_id}'

                and mb_id <> '{$member['mb_id']}' // 질문3) 여기도 왜 mb_id 와 $member['mb_id'] 가 달라야 합니까?

                and wr_is_comment = 1 ";

    $row = sql_fetch($sql);

    

왜 멤버id 가 .. 멤버id가 아닌 조건으로 select 해야 합니까?

 

 

관련질문) http://sir.co.kr/qa/?wr_id=48873

위 관련질문에 ​잘살아보자님이 관련 답변을 해주셨는데... 제가 아무리 봐도 이해를 못하겠더라고요

 

원글에 코멘트가 있는지 없는지 알려면 자기 자신에 글을 제외를 해야 한다는 말씀은??? 


왜 코멘트가 있는지 없는지 알려면.. 자기 자신의 글을 제외를 해야 하는지??? 이해가??? 

 

이 질문에 댓글 쓰기 :

답변 3

1. //원글만 구한다. 라는 의미는 답글이 달려 있는 원글은 수정에서 제외시키겠다는 의미입니다.

   원글wr_id와 답글의 wr_id는 다르기 때문에 원글이 아닌 답글을 찾을려면 조건으로 그렇게 줘야겠지요. 

 

2. 1번의 의미를 아시면 이해하기 쉬울 듯 합니다.

 

3. 수정하고자 하는 원글에 댓글쓴 회원과 원글쓴 회원 아이디가 다른 댓글이 달려 있으면

    그것도 관리자모드 > 게시판설정에 있는 댓글갯수에 따라 원글 수정불가로 처리하겠다는 의미입니다.  

 

P.S. 원글쓰시고 답글달고 다른 아이디로 댓글 달아 보시고 phpMyAdmin 등과 같은 관리프로그램으로

       해당 게시판 컬럼 내용을 보시면 이해가 쉬우실 겁니다 ㅎㅎ 

1. //원글만 구한다. 라는 의미는 답글이 달려 있는 원글은 수정에서 제외시키겠다는 의미입니다.
==============================================================================
그러면.. 원글만 구한다=답변이 없는 원글만 구한다. 인가요?

  원글wr_id와 답글의 wr_id는 다르기 때문에 원글이 아닌 답글을 찾을려면 조건으로 그렇게 줘야겠지요.
=================================================================
왜 원글이 아닌 답글을 찾으려면 원글wr_id와 답글의 wr_id가 달라야 하죠?
원글에 대한 wr_id와 답글의 wr_id 정의가 어떻게 되죠?

3. 수정하고자 하는 원글에 댓글쓴 회원과 원글쓴 회원 아이디가 다른 댓글이 달려 있으면
    그것도 관리자모드 > 게시판설정에 있는 댓글갯수에 따라 원글 수정불가로 처리하겠다는 의미입니다. 
===========================================================================
mb_id는 원글쓴 회원 아이디이고
$member['mb_id']는 댓글쓴 회원아이디 인가요?

답글이 달린 원글을 수정할 수 없게 할려면

 

wr_id <> $write['wr_id'] 여야 해당 원글에 대한 답글을 찾을 수 있겠죠.

위 쿼리문은 답글의 갯수를 구하는 것이죠.

 

답글의 갯수를 구할 수 있게 되면 "이 글과 관련된 답변글이 존재하므로 수정 할 수 없습니다."라는

경고메시지를 보이잖아요? ㅎㅎ 

그리고 해당 테이블의 컬럼명 wr_id와 $write['wr_id']는 다릅니다.
wr_id는 자동으로 1씩 증가하게 되어 있는 것이고 $write['wr_id']는 db에 wr_parent로 들어 가는 것으로 알고 있습니다. 수정할 때를 얘기하고 있습니다.

아래 쿼리는 답글의 갯수를 구하는 것인가요?
주석에는 원글만 구한다고 써있던데요??? ..

혹시 주석에 있는 원글이라는 것은... 원래 글을 말하나요? 답변글의 본문을 말하나요?
주석에 원글만 구한다는 말이... 제가 알고 있는 원글이 아닌가봐요?

    // 원글만 구한다.   
    $sql = " select count(*) as cnt from {$write_table}
                where wr_reply like '{$reply}%'
                and wr_id <> '{$write['wr_id']}'
                and wr_num = '{$write['wr_num']}'
                and wr_is_comment = 0 ";

wr_is_comment = 0 =>댓글이 아니고,
wr_num = '{$write['wr_num']}' => wr_num이 같고, 즉 같은 원글에 대한...답글이나 댓글이어야 하고, 여기서는 답글,
wr_id <> '{$write['wr_id']}'  => 원글이 아닌 답글 또는 댓글,,,여기서는 답글이어야 하고
wr_reply like '{$reply}%' => 원글에 답글이든 답글에 답글이든

이런 조건을 만족하는 레코드(rows)의 갯수를 구하라.

//원글만 구한다  => 여기서 원글만 구한다는 것은 답글이 달린 원글은 수정할 수 없으므로
만일 위 쿼리에 결과가 NULL값이 아니라면  즉, 답글이 있다면...경고메시지

만약, 답글이 있어도 원글 수정이 가능할려면 위 쿼리문이 필요가 없겠지요.

그니까.. 원글을 구하려는게 아니라..
답변글이 있는여부를 확인하는거 아닌가요?
답변글이 있는것을 확인해서 (결국 원글 수정못하게) 하려는 것 아닌가요?

답변글이 있는것을 확인려는데... ..주석에는 원글만 구한다고 써있는 이유가???

// 원글만 구한다.   
    $sql = " select count(*) as cnt from {$write_table}
                where wr_reply like '{$reply}%'
                and wr_id <> '{$write['wr_id']}'
                and wr_num = '{$write['wr_num']}'
                and wr_is_comment = 0 ";

감사합니다 덕분에 이제 이해가 되었습니다.

답변글도 원글에 속하는가보군요... 아.. 이 사실을 몰라서
무척 햇갈렸습니다

미리 알려주셨다면 더 좋았을것 같네요^^

덕분에 풀렸습니다 감사합니다.

 

 

답변글이 있는것을 확인해서 (결국 원글 수정못하게) 하려는 것 아닌가요?

맞아요. 님께서 쓰신 내용이 정답이네요.

그렇지만 원글만 구한다 문구는 오해를 할 수 있겠지만 어떻게 보면 맞을수도 있고요.

댓글이나 답글이 달리지 아니한 원글만 찾는다는 것으로 이해를 한다면 말이죠.

'댓글이나 답글이 없는 원글을 찾는다' == '원글만 구한다'.

 

1. 답글이 달린 원글을 수정할 수 없게 할려면
왜 wr_id <> $write['wr_id'] 여야 해당 원글에 대한 답글을 찾을 수 있을까요?
 

 

댓글이나 답글을 카운터시에 현재 글-원글-이 포함되지 않기위해 하는것이고요. 

아무글도 없이 원글만 있다면 카운터는 값은 없고 글수정으로 넘어가겠죠.


2. wr_id 와  $write['wr_id'] 는 무엇을 의미하길래?
wr_id <> '{$write['wr_id']}'  => 원글이 아닌 답글 또는 댓글을 의미하는가요?

 

현재 수정을 요구하고 있는 글고유번호를 의미합니다. 댓글이나 답글의 구분이 없습니다.

3. wr_num와, '{$write['wr_num']}'은 뭐를 의미하기에
wr_num = '{$write['wr_num']}' => wr_num이 같고, 즉 같은 원글에 대한...답글이나 댓글이라는 것인지요?

 

게시판에 작성되는 글구분번호 입니다. 답글이나 댓글을 제외한 새글에만 부여되는 번호입니다.

-1로 시작해서 새글이 등록될때마다 하나씩 감소합니다.

 

4. 이런 변수들 정의되어있는 문서 같은것 어디 없습니까?  

아래 링크 문서를 보시면 이해가 쉬게 될것 같네요.​

그누보드4 이해하기 글정렬방법      

 

답변을 작성하시기 전에 로그인 해주세요.
전체 125,938 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT