이거 아시는 분이 있을련지,,,
본문
아마 있으시겠죠? 여긴 실력있는 분들이 많으니..^^
회원가입시 고유번호를 발급해주고자 하는데..
랜덤번호는 어느분이 이렇게 답해주셨더라구요
1000~9999 사이의 값을 랜덤하게 구해서 회원가입시 저장하면 되지 않을까요.
/skin/member/basic/register_form_update.tail.skin.php 파일을 생성해서 아래 소스를 넣어주면 여분필드1에 값이 저장됩니다.
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 자신만의 코드를 넣어주세요.
$random="NP".rand(1000,9999);
$sql1 = " update g5_member set mb_1='$random' where mb_id='$mb_id'";
sql_query($sql1);
?>
저는 랜덤이 아니구 순서대로 발급해주고자 합니다. 어떻게 해줘야 할지요..
A001~A999 끝나면
B001~B999....
....
....
Z001~Z999
이런식으로요
*저는 언제쯤 질문좀 그만하고 답변을 해줄 수 있게 될까여?? 유유
이거도 혹시 답변이 가능하면 함께 부탁좀여...미안하기도 하고 듁겟습니당,,
답변 2
$sql = " select mb_1 from g5_member order by mb_1 desc limit 1 ";
$row = sql_fetch($sql);
$uid = get_uid($row['mb_1']);
$sql = " update g5_member set mb_1='$uid' where mb_id='$mb_id' ";
sql_query($sql);
function get_uid($id) {
preg_match_all("/([A-Z])0*([1-9][0-9]*)/i", $id, $arr, PREG_SET_ORDER);
if (!$id) {
return "A001";
}
else if ($arr[0][2] == 999) {
return chr(ord($arr[0][1])+1)."001";
}
else {
return $arr[0][1].str_pad($arr[0][2]+1, 3, "0", STR_PAD_LEFT);;
}
}
회원테이블에 자동으로 증가하는 회원번호가 있습니다(mb_no)
이 번호를 회원번호로 하면 되는데 굳이 다른 번호를 만들 필요가 있는지요?
A, B 등을 붙이려면 아래처럼 해서 출력해보세요
$nn=ceil($member[mb_no] / 10000);
$mem_num =chr(64+$nn).sprintf("%04d", $member[mb_no]);
echo $mem_num;
/////////////////////////////////////////
굳이 저장해야 한다면 extend 폴더에 화일을 하나만들고 아래 코드를 넣으세요
<?
if($member[mb_id] && !$member[mb_1]){
$nn=ceil($member[mb_no] / 10000); // 1~10000까지는 A를 붙임 , 10001~20000까지 B를 붙임....
$member['mb_1'] =chr(64+$nn).sprintf("%04d", $member[mb_no]); // 1--> A0001, 10--> A0010, 10001--> B10001 으로 만듦
sql_query("update $g5[member_table] set mb_1 = '{$member['mb_1']}' where mb_id='{$member['mb_id']}' ");
}
?>