댓글에 적용한 여분필드 리스트에서 구분하고 싶습니다

댓글에 적용한 여분필드 리스트에서 구분하고 싶습니다

QA

댓글에 적용한 여분필드 리스트에서 구분하고 싶습니다

본문

제가 댓글란에 비밀글 대신에 댓글제보 (wr_9) 여분필드 이용해서 체크박스를 만들었는데요 

 


 <div>
      <input type="checkbox" name="wr_9" value="wr_9" id="wr_9">
        <label for="wr_9">댓글제보 </label> (체크박스에 체크하고 링크를 남겨주세요~^__^)
     </div>

</div>

 

-출력부분-

   <p>
            <?php if ($list[$i]['wr_9']) { ?><img src="<?php echo $board_skin_url; ?>/img/jebo.png" alt="댓글제보 "><?php } ?>
            <?php echo $comment ?>
        </p>
출력부분은 같고 앞에 이미지 넣은거구요..

 

근데 이제 댓글제보를 한게 있으면 

리스트에서 카테고리처럼 구분을 하고 싶거든요 

이미 제목옆에 표시를 해놓긴 했는데 

카테고리처럼 구분을 하고 싶습니다 

 

다른 게시판에 적용한 여분필드 마냥

리스트 하단 검색창 이용해서 

                  <option value="wr_9"<?php echo get_selected($sfl, 'wr_9'); ?>>댓글제보</option>
 

이렇게 넣었더니 검색창에 뭘 넣든 검색되는것은 없고요 

댓글제보라는 카테고리를 만들어 자동이동되는건 너무 무리인것 같고 

어떻게든 분류가 되서 버튼으로 만들고 싶은데요  

혹시 방법이 없을까요?

도움좀 부탁드려봅니다~

 

이 질문에 댓글 쓰기 :

답변 2

검색 셀렉트박스에 'wr_9' 항목을 추가하였는데, 검색이 되지 않은 이유는..

검색 셀렉트박스는 "게시글"을 대상으로 하는데,

작성자분이 의도한 'wr_9' 항목은 "게시글" 의 wr_9 항목이 아닌,

"게시글의 댓글들" 에 속하는 wr_9 항목이기 때문입니다.

 <input type="checkbox" name="wr_9" value="wr_9" id="wr_9"> 는 db 테이블의 wr_9 칼럼에 'wr_9' 를 저장한다는 의미인데 value="1" 등으로 수정하여 '1' (또는 'Y') 로 저장하는 것이 좋을 듯 합니다.

 

               wr_id  | wr_parent | wr_is_comment    wr_9

게시글1      1     |      1          |            0             |      

코멘트1      2     |      1          |            1             |      1

 

게시글1 에는 wr_9 에 값이 없기 때문에, 검색도 되지 않고 리스트에서 표기하기도 힘듭니다.

 

방법은

1) 코멘트1 의 wr_9 에 값을 저장할 때(코멘트 업데이트), 해당 코멘트의 부모글을 찾아 부모글의 wr_9의 필드에도 '댓글 제보가' 되었다는 정보를 저장하게 하는 방법과 (가령 총 제보 숫자 합을 기록할 수 있습니다.)

or

2) 게시글 리스트 페이지에서, 또는 검색 로직에서.. 해당 게시글의 댓글들 정보를 불러와서 wr_9  를 체크하는 방법이 

있습니다.

 

둘 중 더 적절하다고 생각하는 방법을 선택하면 되는데..

로직상으로는 2)의 방법이 더 적절할 것 같은데.. 2) 가 더 복잡합니다.

1) 의 방법도 댓글 제보가 되었다가 취소되는 경우가 있다면, 간단하지만은 않을 수 있습니다.

 

2)의 방법을 사용한다면, 

검색시에는 - 게시글들을 대상으로, 해당 게시글들의 댓글들을 찾아 댓글들중  wr_9 필드에 어떤 정보가 저장되어 있는 경우가 발견된다면, 해당 게시글들만 검색

 

리스트 게시글들의 제목에 <댓글 제보가 된 글> 이라는 걸 추가하고자 한다면, 

처음 리스트 추출 sql 에서 댓글들의 wr_9 를 찾아오는 방법을 사용하거나,

리스트의 루프문 안에서, 해당 게시글의 댓글들의 wr_9 정보를 찾아오는 방법이 있습니다.

 

바람직하지는 않지만, 보다 손쉬운 후자의 경우에 대한 예제 코드입니다.

list.skin.php


<?php
        for ($i=0; $i<count($list); $i++) {
            
            $sql = "
                select sum(wr_9) as wr_9_sum
                  from [게시판 테이블]
                 where wr_parent = {$list[$i]['wr_id']}
            ";
            
            $row_tmp = sql_fetch($sql)
            $sum_report = $row_tmp['wr_9_sum'];
            echo "댓글 제보 횟수 합 : " . $sum_report . " / 게시글 제목 " . $list[$i]['subject'];
        ?>

 

검색의 경우에는 /lib/common.lib.php 의 get_sql_search() 함수에서 case 가 'wr_9' 인 경우,

자식 댓글들을  모두 체크하여 제보정보를 가져올 수 있도록 수정하는 방법이 있습니다.

여러가지 설명해주셔서 친절한 답변 감사합니다 일단 그 제목 옆에는 표시가 되어 있습니다 그것도 저도 도움을 딴데서 받은건데 코드가 복잡하더라구요 그거말고 이제 또 상단 카테고리처럼 그것만
소트되도록 하고 싶은 건데  마지막 줄에 설명해주신게 방법이라는 거죠? 좀 어려워 가지고ㅎ

본문 예시의 검색이 가능하게 하려면 common.lib.php에서 search문 만드는 함수를 조금 수정해야 됩니다. Case 'wr_9' 인 경우, and wr_id in (select wr_parent from 테이블 where wr_9 > '' and wr_is_comment = 1) 식입니다.

 

복잡하기 때문에..

저라면 댓글제보 체크 업데이트시 부모글의 wr_9 도 같이 업데이트 해주는 방식으로 하여, 

일반 게시글 여분필드 검색이 작동하도록 하는 방식을 추천하겠습니다.

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

회원로그인

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