我有下面的代碼應該會生成兩個隨機數,如果它們以前已經生成過,就不會重複它們。 $ ticket_number1和$ ticket_number2分別保存到'ticket1'和'ticket2'字段中的數據庫表'票證'中。 雖然有些事情是錯誤的,但我測試了生成的數字介於1和6之間的腳本,並且我得到了一個結果,其中$ ticket_number1和$ ticket_number2是相同的數字(本例中爲4),並且不應該發生。之後,我再次測試,我得到了兩個不同的數字(1和4),但他們之前已經發出,所以他們不應該再次出現。 這意味着整個腳本除了生成隨機數之外沒有其他任何操作。 我已經被告知mysql_
已被棄用,但這不是腳本不能正常工作的原因,對吧? 關於這應該如何正常工作的任何想法? 感謝您的幫助提前。PHP生成兩個隨機數而不重複彼此以前的數字
function getTicket(){
$count=1;
while($count){
$ticket_number = mt_rand(01990, 32000);
$query = "SELECT ticket1 FROM `tickets`
WHERE `ticket1` == '$ticket_number' or `ticket2` == '$ticket_number'";
$count = mysql_num_rows(mysql_query($query));
}
return $ticket_number;
}
$ticket_number1 = getTicket();
$ticket_number2 = getTicket();
爲什麼不能你只需要使用一個[自動遞增鍵(https://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)?爲什麼他們必須是隨機數字? – Gordon
您是否將這些結果保存到數據庫?你的意思是這些數字在一次會話中或隨後的調用中是相同的 –
由於當你得到一個有效的隨機數字時你沒有更新數據庫,所以SQL查詢是相當無意義的 –