Skolacho 0 Denunciar post Postado Junho 25, 2009 Opa pessoal, tudo bem? É o seguinte, estou precisando gerar números sequencias de 4 digitos, EX: 0001, 0002, 0003, etc... Os números não podem se repetir, tipo, irá conferir no bd sql, se já tem o número 0001, se já existir muda para o 0002, e assim por diante. Só vai mudar de número se já estiver cadastrado no bd. Preciso do codigo é para o cadastro de clientes, e cada cliente terá seu codigo unico sequencial. Então, vamos novamente: O número 0001 só vai mudar para o 0002, se o 0001 estiver cadastrado no BD, caso contrário irá ficar lá. É possivel isso? Se é, me ajuda? PLX Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 Usa o id autoincrement do bd. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Mais tipo, tem que ter 4 digitos desde o 0001, 0002. Entende? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 É só completar com zero na hora de exibir. sprintf Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Hum, mais tipo, na hora da pessoa consultar os dados dela, ela digita esse número sequencial que é gerado para ele e uma senha. Na hora da pessoa consultar, ela tem que digitar os 4 digitos. Poderia me dar uma previa do sprintf ? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 Não é mais fácil ele usar sem o zero na frente? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Rodrigo Cardoso 2 Denunciar post Postado Junho 25, 2009 usando o id com auto incremento UNSIGNED ZEROFILL : CREATE TABLE `test`.`test` ( `id` INT( 4 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE = MYISAM; ao inserir dados na tabela, ele inseri automaticamente. Ex: 0001, 0002 (...) INT (4) tamanho do campo, se você quizer um id maior. INT (6) - > Ex : 000001 Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Vou tentar aqui, se der certo volto a falar.. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 @Fernando Rodrigo Muito obrigado, funcionou perfeitamente. Agradeço a todos que postaram tentando ajudar. Obrigado! -------------------------------------------------------------- Agora uma outra dúvida, irei aproveitar o topico. Tipo, quando eu for fazer o cadastro aparecer ne um campo input o ID que vai ser cadastrado automaticamente. Tem como? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Junho 25, 2009 Agora uma outra dúvida, irei aproveitar o topico. Tipo, quando eu for fazer o cadastro aparecer ne um campo input o ID que vai ser cadastrado automaticamente. Tem como? Obrigado! Dá para fazer, mas não recomendo. Vai que duas pessoas fazem o cadastro ao mesmo tempo. O ID que estava mostrando no input vai ser diferente depois. Não vejo a necessidade disso. Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Porquê é um cadastro de ocorrências de um cliente, e para o cliente visualizar qual é o número para ele acessar. O cliente acessa a ocorrência digitando esse codigo que é gerado e o número do CPF dele. Tem que ver o codigo na hora de cadastrar para informar ao cliente. Poderia me ajudar a monta esse codigo? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 Você pode exibir o id depois de cadastrar. Usa a função mysql_insert_id para retornar o último inserido. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Isso é uma boa, mais ainda assim mesmo preciso para mostrar na hora que tive cadastrando. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 Como foi falado, não é seguro, pois podem haver 2 cadastrando ao mesmo tempo e pode mostrar 1 e cadastrar outro. Se realmente você precisar, você pode fazer assim. Quando exibir o formulário ao usuário você insere um registro em branco no banco de dados. Pega o ID usando o mysql_insert_id e exibe junto com o formulário. Daí quando ele enviar o formulário você, ao invés de incluir, você atualiza onde o ID for igual ao ID do formulário. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Hum, gostei da ideia. Irei tentar aqui. Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Isso não daria certo. Porquê quando eu abrisse o formulário para cadastrar ia inserir no BD em branco, no formulário ia mostrar o ID do ultimo não do cadastrado pelo formulario na hora. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 Funcionar, funciona. Fica mais ou menos assim... $sql = 'INSERT INTO tabela (id) VALUES (NULL)'; $qry = mysql__query($sql); $ultimo_id = mysql_insert_id($qry); ?> <form method="post" action="pagina.php"> <input type="text" value="<?php echo $ultimo_id?>"/> </form> Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Apresentou o seguinte erro: Warning: mysql_insert_id(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\teste.php on line 5 O que é? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Junho 25, 2009 Coloca assim $sql = 'INSERT INTO tabela (id) VALUES (NULL)'; $qry = mysql_query($sql) or die(mysql_error()); $ultimo_id = mysql_insert_id($qry); Lembrando que é só um exemplo. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Skolacho 0 Denunciar post Postado Junho 25, 2009 Irei fazer do outro jeito mesmo, parei para pensar aqui se acontecer algo na internet ou no navegador de quem está cadastrando vai um campo vazio. Irei mostrar o ID depois do cadastro. Obrigado a todos pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites