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

해당 회원이 작성 글이나 코멘트가 있을때만 실행되는 쿼리 채택완료

ldscmax 4년 전 조회 2,218

안녕하세요.

 

그누위즈님 팁 게시판에서 얻은 쿼리문인대요.

 

회원 디비에서 완전 삭제 시 글이 지워지게하는 것입니다.

 

팁대로 common.lib.php 에 넣어 해봤으나 글이 삭제가 안되어서

 

아미나 빌더 관리자페이지 회원목록에서 완전삭제 기능에 (member_list_update.php) 아래 쿼리를 넣어서 했더니 작성했던 글,댓글 다 지워지는데..

 

문제는 여러명을 체크하여 삭제할 경우 삭제하는 회원중에 글이나 댓글이 없을땐 오류가 나고있습니다.

 

    $sql = " select * from {$g5['board_table']} ";     $result = sql_query($sql);     for ($i=0; $row=sql_fetch_array($result); $i++) {         $board_table = $g5['write_prefix'] . $row['bo_table']; // 게시판 테이블 전체이름         sql_query(" delete from {$board_table} where mb_id = '{$mb['mb_id']}' ");     }

 

 

완전 삭제하는 회원의 글이나 코멘트가 존재할때만 해당 쿼리문을 실행되게 하려면

 

어떤식으로 if문을 작성해야되는지 고수님들의 도움 부탁드립니다.

 

감사합니다.

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

답변 2개

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

회원중에 글이나 댓글이 없을땐 오류가 나고있습니다<--어디서 오류가 난다는 것인가요?

위 쿼리에서 오류가 난다는 것인가요?

위의 삭제 코드에서는 오류가 나올 수가 없습니다

오류 내용을 올렸으면 좋을텐데요

$mb['mb_id']<---여러명 체크시 이 값에 체크한 아이다가 제대로 들어가도록 만들었는지 의문입니다

 

해당글이 존재하는지 체크하는 것은 아래와 같이 하면 되지만 위 코드에서 에러가 난다면

이 코드에서도 에러가 나는 것이 맞겠습니다

 

$row=sql_fetch("select count(*) as cnt from $board_table where mb_id = '{$mb['mb_id']}' ");

if($row['cnt'])  sql_query(" delete from ~~~~~

 

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

답변에 대한 댓글 1개

l
ldscmax
4년 전
답변 감사합니다.

소스를 여기 넣으면 댓글 읽기가 힘드실거 같아 스샷으로 했는데 그림 첨부가 안되서 추가 댓글로 답변 드립니다..

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

l
4년 전

아미나 빌더 adm/member_list_update.php 입니다.

 

아미나 빌더는 회원 완적삭제 기능이 있습니다.

 

원본은 

 

sql_query(" delete from {$g5['member_table']} where mb_id = '{$mb['mb_id']}' ", false); // 완전삭제

 

까지만 들어가 있는데 나머지는 제가 추가한 것입니다.

 

1개씩 선택해서 삭제를 할 경우 잘 되고 있습니다.

 

근대 탈퇴회원이 20명이라 가정하고 전체선택 후 탈퇴 회원을 '완전삭제' 누를 경우

 

delete from {$g5['member_table']} 에서

 

sql_query(" delete from {$g5['board_new_table']} 삭제까지 다 되지만

 

아래 sql_query(" delete from {$board_table}  쿼리가 들어가면

 

'회원자료가 존재하지 않습니다.

 

라고 오류가나며 선택한 20명중 맨위에 1개만 삭제처리가 되고 있습니다.

 

근대 글이나 댓글이 존재하는 회원 2명이든 3명씩 선택하여 완전삭제 클릭 시 문제없이 삭제가 되고 있고요.

 

그래서 글이 존재하는 회원만 쿼리 실행하면 될까 해서 질문글 올린 것입니다.

 

위에 만들어주신 if문 넣고 해봣는대도 마찬가지입니다.

 

저의  adm/member_list_update.php 소스입니다.

 

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

답변에 대한 댓글 2개

균이
4년 전
첨부한 이미지에서 소스 코드 확인이 가능한가요?
돋보기로 확인한 결과 오류는 하단 for문애서 $i 가 문제 입니다
$h 로 변경하세요

for( $ i <---for문 속에
또 for문이 들어가면서
for($ i <--- 이것처럼 헤버리면 위쪽 for문 $ i가 변경되어버려서 안됩니다
l
ldscmax
4년 전
죄송합니다.
저렇게 작게 나온지 몰랐네요.
댓글을 등록하며 리사이징 된듯합니다.
클릭하면 당연히 원본이 나오는줄 알았는데 ㅠㅠ
답변 감사합니다 균이님!
덕분에 해결하였습니다^^

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

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

로그인