난수발생 - 주문번호생성
페이지 정보
작성자 서방님 댓글 0건 조회 151회 작성일 15-02-23 09:10본문
1.난수발생 함수를 이용해 쇼핑몰이나 중복되지 않는 주문코드 생성
함수설명:
int rand ( [int min, int max]) 함수
부수적인 min, max 인수 없이 호출하면, rand()는 0과 RAND_MAX 사이의 임의의 난수를 반환합니다. 예를 들어, 5와 15(포함) 사이의 난수를 얻으려면, rand (5, 15)로 사용합니다.
몇몇 플래폼(Windows 등)에서는 RAND_MAX는 32768까지 입니다. 32768보다 큰 범위가 필요할 경우에는, min과 max를 지정하여 RAND_MAX보다 큰 범위를 만듭니다.
PHP에서는 RAND라는 함수로 난수를 발생시킨다. 보통 다른 언어에서는 SEED(씨앗)을 다르게 주어 생성하지만 PHP4.2이후부터는 SEED을 줄필요가 없다.
함수사용용도:
쇼핑몰같은 전자상거래 사이트에서는 주문서마다 각각의 중복되지 않는 주문번호가 필요합니다.
보통 영어와 숫자를 혼합하여 사용하는데 이때 rand()함수를 이용합니다.
함수활용:
ex1)
echo rand(); //최대값은 os에 따라서 결정되며 0부터 그사이에 값이 발생한다.
ex2)
for($a=1 ; $a<10 ; $a++)
//1부터 10까지의 수중에서 난수를 발생한다.
echo $a . "번째 난수 : " . rand(1,10) . "<br>";
ex3)
echo rand()%26; //0부터 25까지의 난수가 발생한다.
ex4)
echo rand()%26+65; //65부터 90까지의 난수가 발생한다.
ex5)
//주문코드 생성(올플랜소스)
srand(time());
$time = substr(time(),5,5);//5번째문자에서5글자추출(0분터시작)
for($i=0;$i<3;$i++)//알파벳 3개 추출
{
$asc=rand()%26+65;
$c.=chr($asc);
}
$iparr = explode(".",$REMOTE_ADDR);
//자신의ip뒤에3자리입력
$tradecode=$c.$time.$iparr[3];
echo $tradecode;//주문코드완성
ex6)
//AAA,AAB,AAC식으로 증가.
//주문코드 생성(japanall.com소스)
$start=DBarray("select * from admin");
$trade_1=$admin_row[tradecode_1];
$trade_2=$admin_row[tradecode_2];
$trade_3=$admin_row[tradecode_3];
//현재3개의필드에서 숫자를 가져온다
if($trade_3=="91")//아스키 코드 10진수 90은 문자 Z이고 91은 문자 A로 변환
{
$trade_3=65;//A로 초기화
$trade_2++;//2번째수치1증가
}
if($trad_2=="91")
{
$trade_2=65;//A로 초기화
$trade_1++;//3번째수치1증가
}
$OrderCode=chr($trade_1).chr($trade_2).chr($trade_3);
//아스키문자로 변환하여 병합
$trade_3++;
//3번째숫자는 항상 1씩 증가
DBquery("update admin set tradecode_1='$trade_1',tradecode_2='$trade_2',tradecode_3='$trade_3' ");
//DB에 저장
댓글목록
등록된 댓글이 없습니다.