두 개의 난수를 생성해야하며 다음과 같은 코드가 있어야 이전에 생성 된 적이 있습니다. $ ticket_number1 및 $ ticket_number2는 각각 'ticket1'및 'ticket2'필드의 데이터베이스 테이블 'ticket'에 저장됩니다. 뭔가 잘못되었지만, 생성 된 숫자가 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 쿼리는 의미가 없습니다. –