我正在创建一个票务系统。我希望每个条目都是指定范围之间的唯一数字。我已经创建了函数,我将包含这些函数以展示我是如何处理事物的。如果我一口气买完所有的票,这个功能一般会有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 回答
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消