我正在創(chuàng)建一個票務系統(tǒng)。我希望每個條目都是指定范圍之間的唯一數(shù)字。我已經(jīng)創(chuàng)建了函數(shù),我將包含這些函數(shù)以展示我是如何處理事物的。如果我一口氣買完所有的票,這個功能一般會有3個或4個重復的號碼。我已經(jīng)嘗試過這個,但如果一個人一次購買了所有的票,就會以一些重復的結果告終。我認為如果一次購買一些也會發(fā)生這種情況。這需要更加健壯。已取票返回一組已取數(shù)字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;}未被采用的數(shù)字也以數(shù)組形式返回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;}付款處理后,我調用此函數(shù)與 randomTicket 一起插入數(shù)據(jù)庫。for($i = 0; $i < $quantity; $i++){ echo paymentMade($paymentId, $token, $payerID, $drawID) . "<br>";}我收到重復。這不會發(fā)生在實時應用程序中。我已經(jīng)嘗試了很多東西,發(fā)現(xiàn)這是一個相當大的編程問題。任何和所有輸入將不勝感激。在此先感謝各位。
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消