답변 3개
// 관리자 체크 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} 명 처리됨."; ?>
댓글을 작성하려면 로그인이 필요합니다.
해당은 고유로 자동 증가라서 그렇게 하고 싶으시면 따로 번호를 하나 만드시고 관리를 하는게 나으실거 같습니다. 처리하는 방법은 따로 만든 번호를 만약 번호 5면 5이상인 6부터 하나씩 빼는 쿼리를 만드시면 될 거 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인