답변 3개
<?php
include_once('./common.php'); // 그누보드 환경 포함
// 관리자 체크
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} 명 처리됨.";
?>
답변을 작성하려면 로그인이 필요합니다.