Copy
do {
//4자리 난수 생성
$code = strtoupper(md5(rand(1000,9999).date("Y-m-d H:i:s")));
$sn = $code[rand(0,1)].$code[rand(2,3)].$code[rand(4,5)].$code[rand(6,7)];
$cate = substr($ca_id3,2,4);
$it_id = $cate.$sn;
// it_id가 겹쳤다면 다시돌기
$sql = "select it_id from {$g5['g5_shop_item_table']} it_id = '$it_id'";
$it_id_already = sql_fetch($sql);
}while($it_id_already['it_id'] == '');
itemformupdate.php 에서 상품등록할때
it_id가 난수로 생성하는것이 아닌 카테고리+난수 이렇게 생성하려고 합니다
난수가 혹시나 겹칠수 있으니 do while문을 활용해서 값이있는지 없는지 확
인할려고하는데 파일이 뻗어버리네요. 소스상에는 문제가 없는지 확인해주실수있나요?
아니면 다른 좋은방법있을까요??
답변 1개 / 댓글 1개
채택된 답변
+20 포인트
2019-05-03 (금) 14:21:19
혹시 it_id 가 중복되는 경우가 있던가요? 저 같으면 그냥 쓰다가 문제가 발생하면 수정하겠습니다.
위 코드는 일단 쿼리문에 오류가 있습니다. while문도 이상합니다. 중복된 값이 없으면 무한 반복?
echo로 한번 찍어보세요 결과가 어떻게 나오고 몇번을 반복하는지.
답변에 대한 댓글 1개
2019-05-03 (금) 14:47:39
답변을 작성하려면 로그인이 필요합니다.
제가 do while을 잘못이해하고 있었나봐요!
}while($it_id_already['it_id'] == '');
이부분을 }while($it_id_already['it_id'] != ''); 으로 바꿔주면 되는거였어요!! 감사합니다