테스트 사이트 - 개발 중인 베타 버전입니다

여분필드의 값으로 구분하여 댓글 작성횟수 제한 하고 싶어요...ㅠ.ㅠ 채택완료

카라카스 2년 전 조회 2,363

현재 각 게시글에 임의의 고유코드를 여분필드 wr_1에 넣었습니다.

예를 들어 A, B, C 글의 여분필드 wr_1에 HB03이라는 임의코드를 부여했습니다.

이 임의코드가 같은 글에 댓글을 하나만 달 수 있게 제한하고 싶습니다.

다시말해 임의코드가 같은 A글에 댓글을 달면 B, C글에는 댓글을 달 수 없게요.

물론 임의코드가 다른 D, E, F에는 댓글을 쓸 수 있고요.

 

아래 조건문으로 해봤는데 안되네요...ㅠ.ㅠ

if ($wr_1 == 'HB03') 를 if ($wr_1) 이렇게 바꿔서 하면 wr_1에 값이 있으면 댓글을 하나만 달 수 있고

wr_1에 값이 없을 때는 댓글 작성이 가능합니다.

그런데 각 게시글마다 임의코드를 부여해 구분을 하고 싶은데...값의 유무만 적용이 되네요...ㅠ.ㅠ

 

도움 부탁드립니다.

 

write_comment_update.skin.php

</p>

<p>    if ($wr_1 == 'HB03') {

        $mb_id = $member['mb_id']; 

        $sql = " select count(*) as cnt from {$write_table} where wr_is_comment = '1' and mb_id = '{$mb_id}' ";

        $row = sql_fetch($sql);

        if ($row['cnt'] > "1" ) {    

            sql_query($sql2); //작성한 댓글 삭제

            sql_query(" update {$write_table} set wr_comment = wr_comment - 1, wr_last = '{$row['wr_last']}' where wr_id = '{$write['wr_parent']}' ");

            alert('동일 종류의 글에는 1개 댓글만 쓰실 수 있습니다.');

            exit;

        }

    }</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
2년 전

댓글 저장시에도, 댓글의 wr_1 코드에 부모글의 임의코드를 저장하는 것이 적절해 보입니다.

write_comment_update.head.skin.php 파일은 댓글 DB 저장전 수행되는 파일입니다.

 

* write_comment_update.head.skin.php

$wr = get_write($write_table, $wr_id);

$parent_wr_1 = $wr['wr_1'];</p>

<p>if ($parent_wr_1) {

    $mb_id = $member['mb_id'];</p>

<p>    $sql = "

        select count(*) as cnt

            from {$write_table}

         where wr_is_comment = 1

             and mb_id = '{$mb_id}'

             and wr_1 = {$parent_wr_1}

    ";</p>

<p>    $row = sql_fetch($sql);</p>

<p>    if ($row['cnt'] > 1 )

        alert('동일 종류의 글에는 1개 댓글만 쓰실 수 있습니다.');

}</p>

<p>$wr_1 = $parent_wr_1;

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

카라카스
2년 전
마르스컴퍼니님 매번 친절하게 답변 주시네요...감사합니다...ㅎㅎ
알려주신 소스로 수정하여 해결하였습니다.
진짜 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

이 임의코드가 같은 글에 댓글을 하나만 달 수 있게 제한하고 싶습니다...

==

게시물에 하나인가요, 회원당 하나인가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

카라카스
2년 전
회원당 하나입니다. 제 설명이 부족했네요...ㅜ.ㅜ
엑스엠엘
2년 전
균이님의 답변에서
select count(*) as cnt from $write_table where wr_comment !=0 and wr_1 = {$view['wr_1']}
추가로
and mb_id='{$member['mb_id']}'
하시면 될 듯합니다.
엑스엠엘
2년 전
댓글 처리(insert)하는 곳에서도
여러 이유로
한번 더 검사를 해야합니다.

댓글을 작성하려면 로그인이 필요합니다.

2년 전

view_comment.skin.php 화일 상단에 넣으세요

$row=sql_fetch("select count(*) as cnt from $write_table where wr_comment !=0  and wr_1 = {$view['wr_1']} ");
if($row['cnt']) $comm_write= 0; else $comm_write =1;

 

하단 자바스크립트에서

function fviewcomment_submit(f)
{
if( $('#w').val()=='c' && <?php echo $comm_write;?>!=1) { alert('이미 답변이 등록 되었습니다'); return false; } //<------------- 추가

이미 댓글이 있으면 등록 할 수 없습니다

 

댓글이 달린 게시물은 댓글 수정이 되어야 하니 입력창은 있어야합니다

그런데 조금더 궁리하면

더 이상 댓글을 달 수없고  댓글도 없는 게시물은 댓글 입력창 자체를 안보이게 할 수 있습니다

($is_comment_write 값을 설정하여)

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

카라카스
2년 전
답변 감사합니다.
하나의 글에 댓글을 하나만 작성할 수 있게 하는 것이 아니라
여분필드에 같은 값이 있는 글에 A회원이 한번만 댓글을 쓸 수 있게 하려는 것이거든요...ㅠㅠ
(B, C, D... 회원은 댓글을 달 수 있습니다.)
제 설명이 부족했네요...
신경써 주셔서 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인