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

1씩 증가하는 번호를 1~4만큼 랜덤하게 증가하게 만드려면 어떻게 해야하나요?? 채택완료

까만우산 4년 전 조회 2,058

</p>

<p>    $date = date("ymd", time());    // 2002년 3월 7일 일경우 020307 

    $sql = " select max(od_id) as max_od_id from $g4[yc4_order_table] where SUBSTRING(od_id, 1, 6) = '$date' "; 

    $row = sql_fetch($sql); 

    $od_id = $row[max_od_id]; 

    if ($od_id == 0) 

    { 

<b>        //$od_id = 1; 

        // 시작하는 포인트를 145에서 999 사이에서 임의로 선택 

        $od_id = rand( '145', '999'); </b>

    } 

    else 

    { 

        $od_id = (int)substr($od_id, -4); 

        $od_id++; 

    } 

    $od_id = $date . substr("0000" . $od_id, -4);</p>

<p> </p>

<p>

 

 

해당코드에서 $od_id++ 이부분을 바꾸고싶어요

기본적인 c언어만 할줄알아서

이부분이 1씩 더해진다는 의미인건 알겠습니다

 

그런데 이부분을 1~4중 랜덤한 숫자만큼 더해서 증가시키고 싶은데 어떻게 해야할까요??

 

001-002-003 이런식이 아니라

001-003-004-008 이런식으로 증가하게 만들고싶어요!

 

그리고 ($od_id, -4); 

이부분에서 -4는 무슨 기능인가요??

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

답변 1개

채택된 답변
+20 포인트
Big1
4년 전

랜덤은

mt_rand(1, 4); // 3

https://www.php.net/manual/en/function.mt-rand.php

 

랜덤으로 만든 숫자를 세자리 수로 바꿔서 string 캐스팅 해야겠군요

sprintf('%03d', mt_rand(1, 4)); // 003

https://www.php.net/manual/en/function.sprintf

 

$a = '001-002-003';

$b = '008';

$c = $a.'-'.$b; // 문자열 더하기 001-002-003-008

https://www.php.net/manual/en/language.operators.string.php

 

 

substr 은 substring 으로 문자열의 부분을 자르는 함수인데 

마이너스면 뒤에서 부터 셉니다 

https://www.php.net/manual/en/function.substr.php

 

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

답변에 대한 댓글 1개

까만우산
4년 전
답변감사합니다
생각보다 복잡하군요..

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

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

로그인