회원가입시 mb_1에 값넣기 & exist check

회원가입시 mb_1에 값넣기 & exist check

QA

회원가입시 mb_1에 값넣기 & exist check

본문

회원가입시 

mb_1에 고유한 랜덤값을 넣고 싶은데 

이 랜덤값이 다른사람이 가지고 있는 값인지 체크하고 

없으면 그 랜덤값을 업데이트 하고 싶고

있을때는 다시 랜덤값을 한번 더 받아서 체크하고 싶은데 어떻게 해야되나용?

 


function uuidgen() {
  return sprintf('%04x%04x%04x',
      mt_rand(0, 0xffff),
      mt_rand(0, 0xffff),
      mt_rand(0, 0xffff)
  );
}
$random_mb_number = strtoupper(uuidgen());
function exist_mb_uniq_number($random_mb_number)
{
    global $g5;
    $row = sql_fetch(" select count(*) as cnt from `{$g5['member_table']}` where mb_1 = '$random_mb_number' ");
    if ($row['cnt']){
       // 누군가가 mb_1에 지금 랜덤 값을 가지고 있는 사람이 있다!
    }else{
       // 누군가가 mb_1에 지금 랜덤 값을 가지고 있는 사람이 없네 그럼 update
        sql_query( " update {$g5['member_table']} set mb_1 = '$random_mb_number' where mb_id = '$mb_id' " );
    }
}

 

이 질문에 댓글 쓰기 :

답변 2

안녕하세요. 방법은 여러개 있겠지만 아래의 부분도 참고를 해주세요~

 

//이 부분에서 

 global $g5;
$row = sql_fetch(" select count(*) as cnt from `{$g5['member_table']}` where mb_1 = '$random_mb_number' ");
 if ($row['cnt'] > 0){

        random_mb_number = strtoupper(uuidgen()); // 새로운 랜덤 값을 생성

    $row = sql_fetch(" select count(*) as cnt from `{$g5['member_table']}` where mb_1 = '$random_mb_number' ");

       if ($row['cnt'] < 1){

        // 누군가가 mb_1에 지금 랜덤 값을 가지고 있는 사람이 없네 그럼 update sql_query( " update {$g5['member_table']} set mb_1 = '$random_mb_number' where mb_id = '$mb_id' " );

    }

    

 

}


function exist_mb_uniq_number($random_mb_number)
{
    global $g5;
    $row = sql_fetch(" select count(*) as cnt from `{$g5['member_table']}` where mb_1 = '$random_mb_number' ");
    if ($row['cnt']){
       // 누군가가 mb_1에 지금 랜덤 값을 가지고 있는 사람이 있다!
       $random_mb_number = strtoupper(uuidgen());
       sql_query( " update {$g5['member_table']} set mb_1 = '$random_mb_number' where mb_id = '$mb_id' " );   
    }else{
       // 누군가가 mb_1에 지금 랜덤 값을 가지고 있는 사람이 없네 그럼 update


       sql_query( " update {$g5['member_table']} set mb_1 = '$random_mb_number' where mb_id = '$mb_id' " ); 
    } 
}

 

이렇게 중복이 걸릴경우 한번 재생성해서 해주면 되지 않을까 싶습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 10,639
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT