2017-05-02 15 views
0

동시에 제출하는 경우 가능한 중복 주문 ID에 문제가 있습니다.
이 문제를 완전히 해결하거나 문제를 피하는 방법을 알고 있습니까? 다음은 중복 주문 ID를 피하는 방법

내 코드는 내가 주문 ID를 받고 나는 현재 주문 ID 무엇인지 알고에 1을 추가 할 수 있기 때문에

<?php 

       $sqlt = "SELECT ORD_ID FROM tpointgroup WHERE Group_ID = '$tid'"; 
       $order = mysqli_query($conn , $sqlt); 
       $rowcount = mysqli_num_rows($order); 
       if ($rowcount == 0) 
        echo "No records found";   
       else 
       { 
        $rowt = mysqli_fetch_assoc($order); 
       } 
       $ordid = $rowt["ORD_ID"] + 1; 
?> 

$ORD_ID = date('ym').str_pad($tkid, 6, '0', STR_PAD_LEFT); 

$insert = "insert into cusinfo (ORD_ID) values ('$ORD_ID')"; 
$insert3 = "UPDATE tpointgroup SET 
    ORD_ID = '$ordid' 
    WHERE Group_ID = $tid "; 

내가, tpointgroup 테이블에서 주문 ID를 받아 데이터베이스로 전송하고 방법을 보여주고있다 그것.
사용자가 제출을 클릭하면 주문 ID가 고객에게 할당되고 현재 주문 ID가 테이블 tpointgroup으로 업데이트됩니다.
중복 주문 ID로 내 시스템에서 문제가 발생합니다. 둘 이상의 사용자가 동시에 제출하는 경우 고객의 주문 ID는 동일합니다.

+2

사용 tpointgroup 구별 ORD_ID을 선택 WHERE GROUP_ID = '$의 TID''tpointgroup' 테이블의 'PRIMARY-KEY'는 –

+0

? 'tpointgroup'에'AUTO-INCREMENT' 필드가 있습니까 – mith

+0

@mith, 그래도 여전히 같은 테이블 안에 또 하나의 자동 증가가 있습니다 –

답변

1

고유 한 주문 ID를 생성하려면 다음을 수행하십시오.

$order_id = time() . mt_rand() . $tid; 
+0

이것은 더러운 해결책이 아닌 이동 방법입니다. 실행중인 주문 ID 번호가있는 것이 바람직합니다. 일부 세무 당국은 끈없는 주문 번호를 원할 수도 있습니다. –