2017-05-02 25 views
0

同時に送信すると、重複した注文IDに問題があります。
この問題を完全に解決する方法や起こらないようにする方法を知っていますか?以下は重複を避けるにはどうすればいいですか?

私が注文IDを取得し、私は現在の注文IDが何であるかを知っているに1を追加したいので、私は、tpointgroupテーブルから注文IDを取るデータベース

<?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 "; 

に送信していますかを示す私のコードですそれ。
ユーザがサブミットをクリックすると、注文IDが顧客に割り当てられ、現在の注文IDがテーブルtpointgroupに更新されます。
私のシステムでは重複した注文IDで何かがうまくいかず、2人以上のユーザーが同時に送信した場合、顧客の注文IDは同じになります。

+2

使用tpointgroupは異なるORD_IDをSELECT WHERE GROUP_ID = '$のTID' 'tpointgroup'テーブルの' PRIMARY-KEY'がある –

+0

? 'tpointgroup'に' AUTO-INCREMENT'フィールドがあります – mith

+0

@mith、はい、それでも同じテーブル内に別の自動インクリメントがあります –

答えて

1

一意の注文IDを生成するには、次の方法を試してください。

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

これはちょっとした回避策ではありません。実行順序番号があることが望ましい一部の税務当局は、ギャプスな注文番号を望むかもしれません。 –

関連する問題