Jump to content


Photo

Pegar Id, Adicionando Letras E Números.


  • Faça o login para participar
3 replies to this topic

#1 onlooker

onlooker

    Normal

  • Usuários
  • 102 posts
  • Sexo:Masculino
  • Interesses:Php, MySql, JS...

Posted 09/06/2009, 12:05

Fala pessoal, tudo bem?

Bom, estou trabalhando em um sistema que contém um cadastro. O usuário ao cadastrar recebe um número, esse número será seu acesso ao sistema, uma espécie de matricula.

Agora indo ao que interessa, pensei em pegar o id deste usuario e acrescentar no inicio três letras. Mas ai aparece outro problema, preciso que essa "matricula" tenha ao menos 4 números. Essa matricula precisa ser gerada no momento do cadastro.

Pensei no seguinte:

No cadastro, pego o último ID existente no banco, através do

SELECT MAX(id_usuario) FROM minhatabela

Até aí tudo bem, mas possuo duas dúvidas:

1 - Como faço para acrescentar 3 letras ao id? Exemplo: CAD0001(onde esse "1" seria o ID do usuario, adicionado de 3 letras iniciais, que no caso são "CAD" e 3 zeros no inicio)
2 - Como coloquei no exemplo acima, preciso que sejam 4 numeros. Se o ID que eu pegar for 23, por exemplo, como eu faço para que ele fique 0023?


Abraços :rolleyes:

Edição feita por: onlooker, 09/06/2009, 12:07.

"Você só é você quando ninguém está olhando" (Ann Landers)

#2 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 09/06/2009, 12:36

Use printf ou sprintf. Por exemplo:

$id = 1245;
printf("CAD%04d", $id);

Espero ter ajudado.

#3 onlooker

onlooker

    Normal

  • Usuários
  • 102 posts
  • Sexo:Masculino
  • Interesses:Php, MySql, JS...

Posted 09/06/2009, 12:59

Use printf ou sprintf. Por exemplo:

$id = 1245;
printf("CAD%04d", $id);

Espero ter ajudado.



Opa CMAC! Então cara, o printf funciona pra imprimir como eu quero, mas eu preciso gravar isso no banco de dados, e aí ele já não funciona. Posso abrir mao e deixar essa matricula sem as letras, mas preciso que sejam 4 numeros.

Campo ID = 4
Campo matricula será = 0004

Campo ID = 46
Campo Matricula será = 0046

E assim por diante. Tentei dividir por 1000, mas ai grava com o "ponto" no banco de dados... Saberia como me ajudar quanto a isso?
"Você só é você quando ninguém está olhando" (Ann Landers)

#4 CMAC

CMAC

    Normal

  • Usuários
  • 93 posts
  • Sexo:Masculino

Posted 09/06/2009, 14:26

Como disse, use printf ou sprintf.

No seu caso você pode usar o sprintf que ao invés de imprimir retorna o valor.

Se você fizer
$id = 12;
$new = sprintf("CAD%04d", $id);

a váriavel $new conterá: CAD0012

Se não quiser o CAD, tire-o do sprintf:
$id = 12;
$new = sprintf("%04d", $id);

Para mais informações, consulte o manual.

Espero ter ajudado.

Edição feita por: CMAC, 09/06/2009, 14:28.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq