그누보드5에서 기본적으로 회원정보 테이블에 여분의 필드가 10개 제공되고 있습니다.
그런데 개발을 하다보면 여분 필드가 10개 이상 필요로 할 때가 있는데 이때 여분 필드를 추가하는 방법을 알려드리도록 하겠습니다.
DB 컬럼 추가
기존 g5_member 테이블의 여분 필드는 mb_1에서 mb_10까지입니다.
여분 필드를 11~20까지 추가하기 위해 회원정보 수정 페이지(/adm/member_form.php) 나 별도의 PHP 파일에 아래의 코드를 추가하여 실행해줍니다.
for ($i = 11; $i <= 20; $i++) {
$columnName = 'mb_' . $i;
$previousColumnName = 'mb_' . ($i - 1);
$sql = "SHOW COLUMNS FROM `{$g5['member_table']}` LIKE '{$columnName}'";
$res = sql_fetch($sql);
if (strpos($res['Type'], 'varchar') === false) {
$sql = "ALTER TABLE `{$g5['member_table']}`
ADD COLUMN `{$columnName}` VARCHAR(255) NOT NULL DEFAULT '' AFTER `{$previousColumnName}`;";
sql_query($sql, false);
}
}
“SHOW COLUMNS”를 통해 해당 컬럼이 없을 경우에만 새로 추가하는 코드를 만들었습니다.
쿼리가 자주 수행되는 것이 마음에 걸릴 경우 컬럼 생성 후 해당 코드를 제거하셔도 무방합니다.
관리자 회원정보 수정
회원정보 수정 페이지 수정
회원정보 입력/수정 페이지는 “/adm/member_form.php”입니다.
해당 파일 7줄을 보면 아래와 같은 코드가 있습니다.
$mb = array(
/* 생략 */
'mb_8' => null,
'mb_9' => null,
'mb_10' => null,
);
mb_10 컬럼 밑으로 mb_11에서 mb_20까지 추가하겠습니다.
$mb = array(
/* 생략 */
'mb_8' => null,
'mb_9' => null,
'mb_10' => null,
'mb_11' => null,
'mb_12' => null,
'mb_13' => null,
'mb_14' => null,
'mb_15' => null,
'mb_16' => null,
'mb_17' => null,
'mb_18' => null,
'mb_19' => null,
'mb_20' => null,
);
그리고 568번줄(위의 코드를 추가한 후에는 578번줄)을 보면 for문에 $i <= 10으로 되어있는 코드가 있는데 아래와 같이 $i <= 20으로 변경해주면 이 파일에서 수정해야할 사항은 끝입니다.
<?php for ($i = 1; $i <= 20; $i++) { ?>
<tr>
<th scope="row"><label for="mb_<?php echo $i ?>">여분 필드 <?php echo $i ?></label></th>
<td colspan="3"><input type="text" name="mb_<?php echo $i ?>" value="<?php echo $mb['mb_' . $i] ?>" id="mb_<?php echo $i ?>" class="frm_input" size="30" maxlength="255"></td>
</tr>
<?php } ?>
회원정보 저장 페이지 수정
회원정보를 입력하고 정보를 저장하는 페이지는 “/adm/member_form_update.php”입니다.
해당 파일 91줄을 보면 아래와 같은 코드가 있습니다.
$sql_common = " mb_name = '{$posts['mb_name']}',
/* 생략 */
mb_9 = '{$posts['mb_9']}',
mb_10 = '{$posts['mb_10']}' ";
mb_10 부분 밑에 아래와 같이 mb_11부터 mb_20까지 추가해주면 됩니다.
$sql_common = " mb_name = '{$posts['mb_name']}',
/* 생략 */
mb_9 = '{$posts['mb_9']}',
mb_10 = '{$posts['mb_10']}',
mb_11 = '{$posts['mb_11']}',
mb_12 = '{$posts['mb_12']}',
mb_13 = '{$posts['mb_13']}',
mb_14 = '{$posts['mb_14']}',
mb_15 = '{$posts['mb_15']}',
mb_16 = '{$posts['mb_16']}',
mb_17 = '{$posts['mb_17']}',
mb_18 = '{$posts['mb_18']}',
mb_19 = '{$posts['mb_19']}',
mb_20 = '{$posts['mb_20']}' ";
테스트
이제 회원정보 수정 페이지에서 여분 필드가 11~20까지 출력되는지 확인하고 데이터도 정상적으로 저장이 되는지 테스트 해보시면 된 답니다.
답글 남기기