我有以下代码应该生成两个随机数,如果之前已生成它们,则不要重复它们。 $ ticket_number1和$ ticket_number2分别保存到'ticket1'和'ticket2'字段中的数据库表'tickets'。
虽然有些问题,我测试了脚本,生成的数字在1到6之间,我有一个结果,其中$ ticket_number1和$ ticket_number2都是相同的数字(在这种情况下为4),这不应该发生。之后我再次测试了,我得到了两个不同的数字(1和4),但之前已经发出过,所以他们不应该再次出现。
这意味着整个脚本除了生成随机数之外没有做任何事情。
我已被告知mysql_
已被弃用,但这不是脚本不起作用的原因,对吧?
关于如何正常工作的任何想法?
感谢您的帮助。
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();
答案 0 :(得分:0)
我只是在黑暗中拍摄,但如果数字在同一个电话中,即$ ticket_number1和$ ticket_number2在对页面的一次调用中是相同的,你可以通过告诉函数拒绝已经选择的数字来解决这个问题。
function getTicket($exclude=-1){
$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));
if(!$count)
$count=$ticket_number==$exclude;
}
return $ticket_number;
}
$ticket_number1 = getTicket();
$ticket_number2 = getTicket($ticket_number1);