DB백업 및 복구할 때 회원수 표시의 에러잡기
제로보드의 아래 2개의 파일을 수정하면 그룹 맴버 인원수 틀리게 나오는오류가 고쳐집니다.
멤버의 인원수 업데이트 시키는 쿼리문에서 그룹번호 조건지정이 안되서 발생하는 문재이니
모두 꼭 수정하세요..
아래의 코드를 찾아서 파란부분을 추가함.
******************** /admin/admin_exec_member.php ************************************
admin 디렉토리 안에있는 admin_exec_member.php 파일의 처음에서
function del_member($no) {
global $group_no, $member_table, $get_memo_table, $send_memo_table,$admin_table, $t_board, $t_comment, $connect, $group_table;
// 멤버 정보 삭제
@mysql_query("delete from $member_table where no='$no'") or error(mysql_error());
// 쪽지 테이블에서 멤버 정보 삭제
@mysql_query("delete from $get_memo_table where member_no='$no'") or error(mysql_error());
@mysql_query("delete from $send_memo_table where member_no='$no'") or error(mysql_error());
// 그룹테이블에서 회원수 -1
@mysql_query("update $group_table set member_num=member_num-1 where no='$group_no' ") or error(mysql_error());
}
******************** /member_out.php **************************************************
member_out.php 파일의 47번째 줄
// 그룹테이블에서 회원수 -1
@mysql_query("update $group_table set member_num=member_num-1 where no='$group_no' ") or error(mysql_error());
******************** 일단 끝 ***********************************************************
위 두개를 고친 것으로 버그수정은 끝났습니다,
하지만 admin_setup.php 파일에 맴버인원수 업데이트부분의 주석을
그대로 놔두면 틀린 인원수가 계속 보이게 됩니다.
아래 설명대로 admin_setup.php 을 고쳐서 1번 실행해야 합니다.
******************** /admin_setup.php *************************************************
admin_setup.php 파일의120 번째 줄
while($group_data=mysql_fetch_array($result)) {
//$t_member_num=mysql_fetch_array(mysql_query("select count(*) from $member_table where group_no='$group_data[no]'"));
//$t_board_num=mysql_fetch_array(mysql_query("select count(*) from $admin_table where group_no='$group_data[no]'"));
//mysql_query("update $group_table set member_num='$t_member_num[0]',board_num='$t_board_num[0]' where no='$group_data[no]'") or Error(mysql_error());
//$group_data[member_num]=$t_member_num[0];
//$group_data[board_num]=$t_board_num[0];
위에서 주석처리된 ' // ' 5줄의 주석을 모두 없앤 후 저장하고
관리자 화면을 다시한번 새로 띄워서 인원수가 제대로 나오는 지 확인합니다.
인원수가 제대로 나오면 위 5줄은 다시 원래대로 주석처리합니다..
( 주석을 없앤채로 계속 써도 되지만 인원수만 맞다면 쓸데없는 코드이므로
부하문재를 생각해서 다시 주석으로 하는 것이 좋습니다.. )
(인원수 안맞을때만 주석을 없애고 사용하세요)