Ljrbrasil Postado Fevereiro 2, 2017 Denunciar Share Postado Fevereiro 2, 2017 Pessoal Boa noite! Preciso de um formulário que ao ser preenchido gere um código de cliente diretamente no banco de dados para o cliente. Alguém pode me indicar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 2, 2017 Denunciar Share Postado Fevereiro 2, 2017 Use um campo auto_increment no banco, que será gerado um ID único para cada registro inserido Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ljrbrasil Postado Fevereiro 2, 2017 Autor Denunciar Share Postado Fevereiro 2, 2017 Beraldo Boa tarde! Poderia me ajudar??? O auto_increment acho que ja ocorre para outra finalidade, ai pergunto: É possível fazer a utilização para duas finalidades? e possível fazer outro auto_increment que gere um codigo com 5 dígitos? Segue BD -- Estrutura da tabela `bdclientes` -- CREATE TABLE IF NOT EXISTS `bdclientes` ( `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), `codcli` varchar(60) DEFAULT NULL, `cnpj` varchar(60) DEFAULT NULL, `ie` varchar(60) DEFAULT NULL, `razs` varchar(60) DEFAULT NULL, `fant` varchar(60) DEFAULT NULL, `end` varchar(60) DEFAULT NULL, `num` varchar(60) DEFAULT NULL, `bairro` varchar(60) DEFAULT NULL, `cidade` varchar(60) DEFAULT NULL, `estado` varchar(60) DEFAULT NULL, `cont` varchar(60) DEFAULT NULL, `tel` varchar(60) DEFAULT NULL, `cel` varchar(60) DEFAULT NULL, `codvend` varchar(60) DEFAULT NULL, `vend` varchar(60) DEFAULT NULL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 3, 2017 Denunciar Share Postado Fevereiro 3, 2017 Não. Apenas um campo pode ser auto_increment. O que você pode fazer é gerar um código único usando a função uniqid() do PHP. Vai ter mais que 5 caracteres. Isso é um problema? Se quiser exatamente 5, terá que criar uma função pra isso. Vejo duas saídas: 1. Um loop que vai gerando códigos enquanto o código gerado já existir. Isso evita repetições 2. Criar uma função de hash. Porém a quantidade baixa de caracteres pode gerar colisões (repetições) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ljrbrasil Postado Fevereiro 4, 2017 Autor Denunciar Share Postado Fevereiro 4, 2017 Beraldo Agradeço desde já pela informação. não tenho tanta experiência no assunto e por isso gostaria de saber se pode me mostra um exmplo para que eu possa implementar em meu código Fico grato desde ja pela ajuda. Segue meu código. <?php //arquivo de conexão com o banco de dados require('conecta.php'); //pegando variáveis $data = date("d/m/Y"). "\n"; $hora = date("H:i"). "\n"; $codvend = $_POST ['codvend']; $vend = $_POST ['vend']; $razs = $_POST ['razs']; $email = $_POST ['email']; $fant = $_POST ['fant']; $cnpj = $_POST ['cnpj']; $ie = $_POST ['ie']; $end = $_POST ['end']; $cep = $_POST ['cep']; $bairro = $_POST ['bairro']; $cidade = $_POST ['cidade']; $estado = $_POST ['estado']; $tel = $_POST ['tel']; $cel = $_POST ['cel']; $resp = $_POST ['resp']; //inserindo dados na tabela livrodevisitas $sqlinsert = "INSERT INTO bdclientes (data, hora, codvend, vend, razs, email, fant, cnpj, ie, end, cep, bairro, cidade, estado, tel, cel, resp) VALUES ('$data', '$hora', '$codvend', '$vend', '$razs', '$email', '$fant', '$cnpj', '$ie', '$end', '$cep', '$bairro', '$cidade', '$estado', '$tel', '$cel', '$resp')"; mysql_query($sqlinsert) or die(mysql_error()); //mysql_query($sqlinsert) or die ("Não foi possível inserir os dados - Possivelmente acesso já encontra-se lançado."); echo" <html> <head> <meta http-equiv=\"Content-Language\" content=\"pt-br\"> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\"> <title>KPI Tracking</title> <link href='css/bootstrap.min.css' rel='stylesheet'> <link rel='stylesheet' href='css/style.css'> <style type='text/css'> .teste { font-size: 9px; } </style> </head> <body> <font face=\"Century Gothic\" color=\"#008000\">Informação Enviada. Você será redirecionado em 5 segundos.</font></p> <hr size=\"1\" width=\"50%\"> <div align=\"center\"> </div> </body> </html>"; echo '<meta http-equiv="refresh" content="5;URL=ccliente.php" /> ' //redirecionar ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Fevereiro 5, 2017 Denunciar Share Postado Fevereiro 5, 2017 (editado) A ideia é a seguinte: do { $id = rand(11111, 99999); $alreadyExists = true; // busca $id no banco e verifica se já existe. Recebe true se já existe ou false caso contrário } while ($alreadyExists); echo "ID gerado: " . $id . PHP_EOL; PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira MySQLi ou PDO. Veja mais detalhes aqui: http://rberaldo.com.br/mysql-obsoleto-php/ Editado Fevereiro 5, 2017 por Beraldo Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ljrbrasil
Pessoal
Boa noite!
Preciso de um formulário que ao ser preenchido gere um código de cliente diretamente no banco de dados para o cliente. Alguém pode me indicar.
Link para o comentário
Compartilhar em outros sites
5 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.