특정 조건으로 회원을 검색해서 일괄 삭제
특정 조건으로 회원 목록을 출력 후 대상 회원들을 일괄 삭제하는 방법입니다.
예를 들어 이메일 주소가 없는 회원, 핸드폰 번호가 없는 회원, 특정 레벨 회원 등등..
예전에 올렸던 팁과 비슷한 방식입니다.
http://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=217
일단 대상 회원을 모두 출력하고 삭제해도 되는 회원들인지 체크 후 주석을 해제하고 새로고침하면 일괄 삭제됩니다.
"한번 삭제 후에는 되돌릴 수 없으니 신중히 사용하세요."
중요한 곳이라면 반드시 db를 백업 후 사용하세요.
전체 db를 백업 받아놓으시거나 회원, 포인트, 쪽지, 스크랩 일부 테이블만 백업 받으셔도 됩니다.
예제는 이메일 주소 값이 없는 회원을 조건으로 설정했습니다.
$sql = " select * from {$g5['member_table']} where mb_email = '' ";
사용 방법
아래 코드 전체를 복사해서 파일을 만든 후 그누보드가 설치된 곳 아무 곳에나 올린 후 실행하세요.
일단 조건에 맞는 회원 목록이 출력됩니다. 문제가 없다면 이메일 주소 값은 빈값으로 나와야겠죠.
echo $row['mb_id']."/".$row['mb_nick']."/".$row['mb_email']."<br>";
회원id / 회원닉네임 / 이메일주소
생성해야 할 파일 내용
빨간색 부분이 /*....... */ 주석 처리된 곳입니다. 해당 부분을 제거하고 실행하면 대상 회원 전체가 일괄 삭제됩니다.
그누보드 기본 함수로 회원을 삭제하거나 탈퇴 처리를 하면 동일한 회원 id 사용을 금지하기 위해 일부 정보는 남겨놓는데
아래 코드는 정보를 남겨놓지 않고 db 에서 완전히 삭제됩니다.
<?php
include_once('./_common.php');
$sql = " select * from {$g5['member_table']} where mb_email = '' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row['mb_id']."/".$row['mb_nick']."/".$row['mb_email']."<br>";
/*
sql_query(" delete from {$g5['member_table']} where mb_id = '{$row['mb_id']}' "); // 회원 삭제
sql_query(" delete from {$g5['point_table']} where mb_id = '{$row['mb_id']}' "); // 포인트테이블 삭제
sql_query(" delete from {$g5['memo_table']} where mb_id = '{$row['mb_id']}' "); // 쪽지 삭제
sql_query(" delete from {$g5['scrap_table']} where mb_id = '{$row['mb_id']}' "); // 스크랩 삭제
@unlink(G5_DATA_PATH.'/member/'.substr($row['mb_id'],0,2).'/'.$row['mb_id'].'.gif'); // 아이콘 삭제
if(function_exists('social_member_link_delete')){ // 소셜로그인에서 삭제 또는 해제
social_member_link_delete($row['mb_id']);
}
*/
}
?>
회원 완전 삭제가 아닌 동일한 회원id 사용을 금지하기 위해
그누보드 기본 함수(member_delete)를 사용해서 기존의 회원 id는 남겨 놓는 방법
위 코드 대신 아래 내용을 사용하고 대상 회원들이 맞는지 확인 후 주석 해제하고 다시 새로고침
<?php
include_once('./_common.php');
$sql = " select * from {$g5['member_table']} where mb_email = '' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo $row['mb_id']."/".$row['mb_nick']."/".$row['mb_email']."<br>";
// member_delete($row['mb_id']);
}
?>