我正在創建一個票務系統。我希望每個條目都是指定范圍之間的唯一數字。我已經創建了函數,我將包含這些函數以展示我是如何處理事物的。如果我一口氣買完所有的票,這個功能一般會有3個或4個重復的號碼。我已經嘗試過這個,但如果一個人一次購買了所有的票,就會以一些重復的結果告終。我認為如果一次購買一些也會發生這種情況。這需要更加健壯。已取票返回一組已取數字function takenNumbers($drawID){ $connect = new mysqli("localhost", "root", "", "dream"); $stmt = $connect->prepare("SELECT * FROM transaction WHERE DrawID = ?"); $stmt->bind_param("i", $drawID); $stmt->execute(); $result = $stmt->get_result(); $tickets = array(); while($row = $result->fetch_assoc()){ $id = $row['ID']; $tickets[] = $row['TicketNumber']; } return $tickets;}未被采用的數字也以數組形式返回function freeNumbers($drawID){ $minTickets = 1; $maxTickets = totalTickets($drawID); $takenNumbers = takenNumbers($drawID); $freeNumbers = array(); $allTickets = range(1, $maxTickets); $freeNumbers = array_values(array_diff($allTickets, $takenNumbers)); return $freeNumbers; }然后我有一個基于這些功能的隨機票生成器function randomTicket($drawID){ $num = freeNumbers($drawID); $random = array_rand($num, 1); return $random;}付款處理后,我調用此函數與 randomTicket 一起插入數據庫。for($i = 0; $i < $quantity; $i++){ echo paymentMade($paymentId, $token, $payerID, $drawID) . "<br>";}我收到重復。這不會發生在實時應用程序中。我已經嘗試了很多東西,發現這是一個相當大的編程問題。任何和所有輸入將不勝感激。在此先感謝各位。
- 1 回答
- 0 關注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消