헐랭이님 팁 댓글 일괄삭제 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

헐랭이님 팁 댓글 일괄삭제 정보

헐랭이님 팁 댓글 일괄삭제

본문

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=10610

위 링크 아래 소스는 헐랭이님의 "이글에 포함된 코멘트 일괄삭제" 입니다.

그런데 모든 코멘트를 다 삭제하지 않고 아이디를 지정해서 삭제하고 싶습니다.

어디에 어떻게 수정해야 하는지 소스 좀 부탁드립니다 (^^)(__)

sql_query(" delete from $write_table where mb_id='해당 아이디' and wr_comment >0  ");

이걸 붙이면 될까요? 뭘 삭제해야 하며....


<?
//해당글에 딸린 코멘트 일괄 삭제 시스템 by 헐랭이
$kototal = $view[wr_comment];//이글의 코멘트 총갯수
if ($admin_comment_del_ok == "comment_del_ok") {
 if ($is_admin !="super") {
  alert("최고관리자가 아닙니다.");
 }
if (!$kototal) {
  alert("등록된 코멘트가 없습니다.");
}
// 원글에 포함된 코멘트를 전부삭제
sql_query(" delete from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 ");

// 버전별 코드분리 시작
// 아래의 코드는 버전에 따라서 다르므로 환경에 맞는 코드를 사용 하세요.
//그누보드 4.09.00 이전 버전 사용자용
// 원글에 코멘트 숫자를 감소한다.
sql_query(" update $write_table set wr_comment = wr_comment - $kototal where wr_id = '$wr_id' ");

// 그누보드 4.09.00 이후 버전 사용자용
// 코멘트가 삭제되므로 해당 게시물에 대한 최근 시간을 다시 얻는다.
$sqlst = " select max(wr_datetime) as wr_last from $write_table where wr_parent = '$wr_id' ";
$rowst = sql_fetch($sqlst);                                     
// 원글에 코멘트 숫자를 감소 하면서 최신 날자를 되돌린다.
sql_query(" update $write_table set wr_comment = wr_comment - $kototal, wr_last = '$rowst[wr_last]'  where wr_id = '$wr_id' ");
// 버전별 코드 분리 끝

// 이게시판 전체 갯수에서 삭제된 코멘트의 갯수만큼 감소
sql_query(" update $g4[board_table] set bo_count_comment = bo_count_comment - $kototal where bo_table = '$bo_table' ");
// 새글에 등록이 되었다면 전부삭제
sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_parent = '$wr_id' ");
echo"<script language=\"javascript\">
window.alert(\"이글의 코멘트가 전부 삭제 되었습니다. 총갯수: $kototal 개\");
</script>";
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id&page=$page" . $qstr);
exit;
}
if ($is_admin =="super") {
 if ($kototal) {
//echo "$view[wr_comment] 개";
echo"
<FORM NAME='admin_view_comment_del' METHOD='POST' ACTION='./board.php' onclick=\"return confirm('이글에 포함된 코멘트를 전부 삭제 하시겠습니까?\\n\\n코멘트 일괄 삭제를 실행하면 돌이킬수 없습니다.')\">
<input type='hidden' name='bo_table'  value='$bo_table'>
<input type='hidden' name='wr_id'  value='$wr_id'>
<input type='hidden' name='admin_comment_del_ok'  value='comment_del_ok'>
<INPUT TYPE='submit' VALUE='코멘트일괄삭제'>
</FORM>";
 }
}
?>

  • 복사

댓글 전체

그 팁을 봤는데 모든 글이 다 지워지는 거지요? 그래서....

그럼 위 링크 팁에서 첨부된 alldel.php 파일의 아래 코드를

해당 게시물의 지정 아이디의 코멘트를 삭제하도록 수정가능할까요? ^^

$i = 0;
$query = sql_query("select bo_table from `$g4[board_table]`");
while($row = sql_fetch_array($query)) {
  sql_query("delete from `$g4[write_prefix]$row[bo_table]` where mb_id='$mb_id'");
  $i++;
}
echo "총 $i 개의 글 또는 코멘트를 삭제했습니다.";
wr_parent가 $wr_id인 경우를 지정하면 되겠네요.(부모글이 $wr_id인 모든 댓글)

sql_query("delete from `$g4[write_prefix]$row[bo_table]` where mb_id='$mb_id' AND wr_parent='$wr_id' AND wr_is_comment");
글은 제외하고 코멘트만 삭제하도록요~

참 그리고 위 팁을 사용해 봤었는데

삭제는 잘 되는데

삭제후 아래처럼 꼭 37 개의... 이렇게 뜨더라구요.... 1개 삭제해도 그렇구 2개, 3개도....

 Loading Image...총 37 개의 글 또는 코멘트를 삭제했습니다.
37개는 게시판 개수인 것 같습니다.

echo mysql_num_rows(sql_query("select mb_id from `$g4[write_prefix]$row[bo_table]` where mb_id='$mb_id' AND wr_parent='$wr_id' AND wr_is_comment"));

이렇게 해보세요.
알려주신대로

$i = 0;
$query = sql_query("select bo_table from `$g4[board_table]`");
while($row = sql_fetch_array($query)) {
  sql_query("delete from `$g4[write_prefix]$row[bo_table]` where mb_id='$mb_id' AND wr_parent='$wr_id' AND wr_is_comment");
  $i++;
}
echo "총 $i 개의 글 또는 코멘트를 삭제했습니다.";

이렇게 수정했는데 이젠 삭제가 안되네요....



새로 알려주신건 적용하니

 Loading Image...0000000000000000000000000000000000000총 37 개의 글 또는 코멘트를 삭제했습니다.

이렇게 되구요 ㅠㅜ
빨리 해결이 안되어 죄송합니다.
그런데 몇번을 해봐도 새로 주신 코드론 삭제가 안됩니다.
이전껀 모두 삭제가 되구요.

해당게시물내 선택아이디 코멘트 삭제만 된다면 ㅠㅠ
$bo_table = 게시판;
$wr_id = 원글;
$mb_id = 회원아이디;
sql_query("delete from `$g4[write_prefix]$bo_table` where mb_id='$mb_id' AND wr_parent='$wr_id' AND wr_is_comment");
저런 값을 변수로 넘겨받도록 하면 되죠.
예를 들어 저렇게 d.php라고 만들었다면,
d.php?bo_tabe=게시판&wr_id=원글아이디&mb_id=회원아이디
이런식으로 링크를 생성해놓고 클릭하면 되겠죠.
© SIRSOFT
현재 페이지 제일 처음으로