Adenison Santos Postado Abril 29, 2010 Denunciar Share Postado Abril 29, 2010 Estou usando a seguinte função para gerar um numero de protocolo randomico, mais estou tentando frequentes erro de chave duplicada no formulário.Minha duvida é de como fazer para em vez de gerar um numero randomico, uma testar se já possui no banco e gerar o loop para ser gerado novamente..function makeRandomPassword(){ $salt = "123456789"; srand(time(NULL)); $i = 1; while($i <= 7){ $num = rand() % 55; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $numero_randomico = makeRandomPassword(); $protocolo = ($numero_randomico); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Abril 29, 2010 Denunciar Share Postado Abril 29, 2010 Como você vai verificar se o número existe ou não, fiz o rand direto, tirando toda aquela parte que agora só serviria pra consumir mais recursos do servidor...function makeRandomPassword(){ while(1){ $pass = rand(1,99999); //Faz a query e verifica se o número já existe, tem que ver como está o seu BD... $sql = mysql_query... if(mysql_num_rows($sql) == '0'){ break; } } return $pass; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adenison Santos Postado Abril 29, 2010 Autor Denunciar Share Postado Abril 29, 2010 (editado) Não entendi o que você quis dizer, mais minha query esta assim:$cadastrar = mysql_query("INSERT INTO `$tabela` (protocolo, nome, email, ddd, telefone, endereco, numero, complemento, bairro, cep, cidade, uf, cpf, rg, nota, emissao_data, serie, serie2, relato, data_cadastro) VALUES ('$protocolo','$nome','$email','$ddd','$telefone','$endereco','$numero','$complemento','$bairro','$cep','$cidade', '$uf','$cpf','$rg','$nota','$emissao_data','$serie','$seriequip','$relato', now())", $db) or die (mysql_error()); } Editado Abril 29, 2010 por Adenison Santos Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 *FIT* Postado Abril 29, 2010 Denunciar Share Postado Abril 29, 2010 O que o Eserra quis dizer, é que depois de gerar o Rand(), você terá que fazer uma consulta na base para ver se o numero já existe, apenas monte uma query fazendo isso aonde ele deixou marcado para colocar ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Adenison Santos Postado Abril 30, 2010 Autor Denunciar Share Postado Abril 30, 2010 (editado) Entendi.. ValeuObrigado Editado Abril 30, 2010 por Adenison Santos Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Adenison Santos
Estou usando a seguinte função para gerar um numero de protocolo randomico, mais estou tentando frequentes erro de chave duplicada no formulário.
Minha duvida é de como fazer para em vez de gerar um numero randomico, uma testar se já possui no banco e gerar o loop para ser gerado novamente..
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.