PHP Probalidades

Eu quero gerar um numero aleatorio e unico... e que kd n acha mais numeros unicos disponiveis a bilhetaria fecha...
=/ Se me puderes fazer o sample E explicar agradecia :S, porque eu gostaria de aprender e seguir a linha de racicionio
Desde ja obrigado
 
se bem percebi o que tu queres, acho que se resume a isto:

Código:
$ticket= rand(0, 1);

//enquanto for encontrado registo igual com o mesmo ticket, faz novo rand
while (mysql_num_rows(mysql_query("SELECT * FROM XXXX WHERE ticket='$ticket'")) {
   $ticket=rand(0, 10);
}
$sqli=mysql_query ("INSERT INTO XXXX (username, email, choice, ticket) VALUES ('$lole','$email','$choice', '$ticket')");
include ('XXXX.php');
exit();
 
Vou testar isso... mas á primeira vista isso não poderá tb ser um Looping sem fim :S?
Visto que sempre que o $ticket estiver presente na base de dados irá fazer um looping para ser diferente...

TESTADO: Boas entra numa espiral de loopings... igualmente :S, após 10 compras o 11º bilhete entra num looping continuo...
 
Última edição:
pois, tens razao, fica infinito quando já estiverem gravados todos os 11 números (de 0 a 10). mas isso resolve-se facilmente. assim de repente:

Código:
$ticket= rand(0, 1);
$cont=0;
while ($cont<=11 && mysql_num_rows(mysql_query("SELECT * FROM XXXX WHERE ticket='$ticket'")) {
   $ticket=rand(0, 10);
   $cont++;   
}

   //se $cont for igual a 12, mostra msg de erro ou outra coisa qualquer, senão grava novo registo
if ($cont==12) {
   echo "erro";
}
else {
  $sqli=mysql_query ("INSERT INTO XXXX (username, email, choice, ticket) VALUES ('$lole','$email','$choice', '$ticket')");
include ('XXXX.php');
}
exit();
 
Era mm isso k precisava!!!! uma maneira de parar o Looping, só m falta mm isso, agr ja fikei a saber uma maneira de o fazer :)
Muitisso obrigado a todos hehe :), estava a ver que isto n tinha fim :-D
Cumps
 
Desculpa la, mas estavas-te a explicar bastante mal, e o teu código estava tão confuso que eu pensei que era algo muito mais complicado :P

Ainda bem que conseguiste o que querias!


:D
 
Hehe :P eu ainda n sei sintetizar as coisas... como quase nunca mexi com o While... meti-me la a fazer coisas desnecessárias... :P
Mas ja aprendi hehe ;)
Thankx all
 
Back
Topo