Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite, tenho um código que gera um aleatório de 6 digitos e tenho uma função que chega se este não é igual ao que já esta no BD.
<?php
function aleatorio(){
$aleat= "";
$valor = "0123456789";
srand((double)microtime()*1000000);
for ($i=0; $i<6; $i++){
$aleat.= $valor[rand()%strlen($valor)];
}
return $aleat;
}
?>
Preciso criar uma função que teste o código e caso seja igual vá gerando código até que este seja diferente dos já cadastrados
<?php
include 'aleatorio.php';
include 'conexao.php';
function checa($pin){
$consulta = $mysqli->query("SELECT PIN from eventos WHERE PIN = $pin ");
$valor = $consulta->num_rows;
if($valor == 0){
return $pin;
}else{
$pin = aleatorio();
return checa($pin);
}
$mysqli->close();
}
?>
Crie este código mais não realiza a operação necessária!
Seria isso
function aleatorio(){
$pin = "";
$valor = "0123456789";
srand((double)microtime()*1000000);
for ($i=0; $i<6; $i++){
$pin.= $valor[rand()%strlen($valor)];
}
include 'conexao.php';
$consulta = $mysqli->query("SELECT PIN from eventos WHERE PIN = $pin ");
$ocorrencia = $consulta->num_rows;
while($ocorrencia>0){
echo 'errou';
aleatorio();
}
return $pin;
}include 'conexao.php';
while(true){
$pin = "";
$valor = "0123456789";
srand((double)microtime()*1000000);
for ($i=0; $i<6; $i++){
$pin.= $valor[rand()%strlen($valor)];
$consulta = $mysqli->query("SELECT PIN from eventos WHERE PIN = $pin ");
$ocorrencia = $consulta->num_rows;
if($ocorrencia==0){
echo $pin;
break;
}
}
Programação orientada a funções? 3 funções para fazer o que dá pra fazer em apenas 1?
Na função que gera o número, coloque tudo dentro de um laço (while) e quanto retornar zero do BD simplesmente pare o laço e dê o saída do número gerado.