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

회원번호를 부여 해보고 싶은데요!! 채택완료

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']}' ");

}

?>

 

회원카드를 만들일이 생길수 있을꺼 같아서 회원번호를 만들어 볼려고 검색해보니까 위와 같은 코드가 있던데요. 제가 해보고 싶은거는 

 

A0001 ~ A9999 그 이후는 만번으로 가는게 아니라 B0001~B9999 C0001~C9999

 

이런식으로 가고 싶은데 저 소스를 어떻게 수정을 해줘야 할까요?

 

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

답변 1개

채택된 답변
+20 포인트

</p><p><?</p><p>$member['mb_no'] = 20001; // 회원 번호가 20001이라고 가정
$q = (int)($member['mb_no'] / 9999);
$r = $member['mb_no'] % 9999;
$cha = "A";
for($i=0; $i<$q; $i++) $cha = ++$cha;
echo $cha.sprintf("%04d", $r);</p><p>?></p><p>
 

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

답변에 대한 댓글 8개

sql_query("update $g5 이런 부분이 안보여서요 ㅠㅠ
이건 입력을 해 주는 게 아니고 현재 회원의 번호(g5_member 테이블의 mb_no)를 기준으로 말씀하신 회원 번호?? 그걸 뿌리는 겁니다.
저장하는 거는 따로 구현을 하시면 됩니다.
이렇게 하니까 9998 까지는 A9998 이렇게 나오는데 9999 부터 B0001 로 되는군요!?!? 큰 도움이 되었습니다. 감사합니다.
A9999 까지 넣어줄려면 = 부등호를 넣어줘야 할꺼 같은데 에러가 나네요 ㅠㅠ
echo $cha.sprintf("%04d", $r);
이걸 변수로 지정해서 사용하시면 될 거 같네요.
$result = $cha.sprintf("%04d", $r);
왕계란님 제 의미는 a9999 가 안되더라구요 ㅠㅠ 9999 부터는 앞에 b 가 붙어서요.
[code]
$div = 9999;
$member['mb_no'] = 10001;
$q = ceil($member['mb_no'] / $div) - 1;
$r = ($member['mb_no'] > $div) ? $member['mb_no'] - ($div * $q) : $member['mb_no'];
$cha = "A";
for($i=0; $i<$q; $i++) $cha = ++$cha;
echo $cha.sprintf("%04d", $r);
[/code]
10000, 9999, 10001
좀 특정한 숫자에서 계산 착오네요.
테스트는 못해봤는데 끝까지 답변해주셔서 너무 감사드립니다~! 행복하세요!!

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

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

로그인

전체 질문 목록