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

회원 삭제 후 mb_no 번호 정렬 채택완료

불량닭발 3개월 전 조회 709

회원 삭제 시 정보가 완전하게 삭제하도록 수정을 하였습니다.

회원 삭제 후 mb_no 번호가 중간중간 비어 있는데, 혹시 삭제할 때마다 번호를 재정렬하는 방법이 있을까요?

 

3번을 지우면 4번 부터 3, 4, 5... 이렇게

 

고수님들 답변 부탁 드립니다.

감사합니다.

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

답변 3개

채택된 답변
+20 포인트

// 관리자 체크 if (!$is_admin) {     die("관리자만 실행할 수 있습니다."); }

// 트랜잭션 시작 (InnoDB인 경우 유효) sql_query("START TRANSACTION");

$sql = "SELECT mb_id FROM g5_member ORDER BY mb_no ASC"; $result = sql_query($sql);

$new_no = 1; $map = [];

// 1단계: mb_no를 중복 피하기 위해 임시 음수 번호로 먼저 설정 while ($row = sql_fetch_array($result)) {     $mb_id = $row['mb_id'];     $temp_no = -$new_no; // 예: -1, -2, -3 ...

    sql_query("UPDATE g5_member SET mb_no = '{$temp_no}' WHERE mb_id = '{$mb_id}'");     $map[] = ['mb_id' => $mb_id, 'new_no' => $new_no];

    $new_no++; }

// 2단계: 임시 번호 → 실제 번호로 재설정 foreach ($map as $m) {     sql_query("UPDATE g5_member SET mb_no = '{$m['new_no']}' WHERE mb_id = '{$m['mb_id']}'"); }

sql_query("COMMIT");

echo "? mb_no 재정렬 완료! 총 {$new_no} 명 처리됨."; ?>

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

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

3개월 전

해당은 고유로 자동 증가라서 그렇게 하고 싶으시면 따로 번호를 하나 만드시고 관리를 하는게 나으실거 같습니다. 처리하는 방법은 따로 만든 번호를 만약 번호 5면 5이상인 6부터 하나씩 빼는 쿼리를 만드시면 될 거 같습니다.

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

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

3개월 전

sql 에서 쿼리보면 맨뒤에 정렬 쿼리 넣어서 order by 고유번호 desc

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

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

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

로그인