채택완료

전체 게시판에서 회원별로 댓글 2개까지만 쓸 수 있게 가능할까요?

2023-04-06 (목) 10:57:28 2,042

현재 아래 소스로 회원별로 각 게시글에 댓글을 한개씩만 쓸 수 있게 만들었습니다.

그런데 동시에 게시판 전체에서 회원별로 댓글을 2개까지만 달게 할 수 있을까요?

전문가님들의 도움 부탁드립니다....ㅠ.ㅠ

<? 
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 

$mb_id  = $member['mb_id']; // g5_write_xxx 필드에 mb_id가 있어서 없어도 무방한듯
$sql    = " select count(*) as cnt from $write_table
                where wr_parent = '$wr_id' and wr_is_comment ='1'
                and mb_id = '$mb_id' ";
$row    = sql_fetch($sql);
$sql2   = " delete from  $write_table where wr_is_comment ='1' and wr_id = '$comment_id' ";
//echo $sql; exit;
//echo $sql2; exit;
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('수강신청 한번만 가능합니다.');
        exit;
}
?> 
 

답변 3개 / 댓글 4개

채택된 답변
+20 포인트
2023-04-06 (목) 16:46:11
Copy
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 
 
$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'] > 2 ) {    
  alert('현 게시판에서 총 댓글은 2개까지만 작성할 수 있습니다.');  
}

답변에 대한 댓글 1개

감사합니다...
위의 소스를 참고해서 gr_id 조건문으로 해결했습니다.
고민해결해 주셔서 다시한번 감사합니다....
2023-04-06 (목) 13:22:47

용도가 수강신청이면

수강신청용 테이블을 하나 만들어 보세요.

답변에 대한 댓글 2개

답글 감사합니다. 그런데 이미 운영중인 홈페이지라 수강신청 테이블을 다시 만들기에는 일이 너무 많아지네요...ㅠ.ㅠ
용도가 수강 신청이면
여러 가지 정보를 저장해야 될 듯하네요
그렇다면 별도 테이블이 있는 것이
결국은 일을 줄이게 될 겁니다

그렇다면 전체 게시판에 댓글 개수를 2개로 제한한다면 게시판 테이블을 다 불러와서 카운팅해서 처리해야 하는 부분이 있는데 그 방식은 체크하는 부분가운데 데이터가 많아지만 딜레이가 생길수 있기때문에
댓글 카운트를 회원테이블이 구분필드를 하나두어서 댓글 등록시 카운팅을 올려 체크하는 방식을 하시는게 체크하고 처리하는 과정이 부하를 덜 먹게 처리할듯 보입니다.

답변에 대한 댓글 1개

답글 감사합니다. 회원테이블에 필드에 카운팅...새로운 방법이네요...고민을 해봐야겠네요...^^

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