특정 조건으로 회원을 검색해서 일괄 삭제 - 그누보드팁

본문 바로가기
전체검색

그누보드팁

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

특정 조건으로 회원을 검색해서 일괄 삭제

관리자 19-03-02 21:29

특정 조건으로 회원 목록을 출력 후 대상 회원들을 일괄 삭제하는 방법입니다.

예를 들어 이메일 주소가 없는 회원, 핸드폰 번호가 없는 회원, 특정 레벨 회원 등등..


예전에 올렸던 팁과 비슷한 방식입니다.

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']);
}
?>

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright gnustudy.com All rights reserved.