Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal boa tarde!
preciso gerar uma sequencia numerica que vai servir como um numero do pedido.
a numeração começa com 00001 .. e conforme forem sendo gerando os pedidos essa numeração vai almentando.. 00002... 00234...
como fazer isso no php???
ou com sprintf('%06d', 1);
na verdade quero saber como fazer mesmo....
tipo vai funcionar junto com o cadastro dos dados... tipo na hora que a pessoa clicar em enviar cadastro... vai gravar os dados dele no banco e grava tbm essa numeração.
use o IF, se o numero menor q 10
salva 00000$numero
se maior
0000$numero
se maior que 100
000$numero
etc. Foi como eu fiz, mas no meu caso existem apenas 3 digitos (0-999)
se for fazer assim comece do maior pro menos e usando Senão Se (else if) que você economiza processamento.
Se N >10000{
}Senao Se N > 1000 {
}
Senão Se N >100{
}Senão Se N >10{
}
Senão {
}
Pode fazer de forma automática no mysql, é simples, no campo ID estipulo nos atributos "UNSIGNED ZEROFILL"
pensei em usar uma variavel... tipo $codigo = "00001" e ai cada vez que for gravar os dados no banco... utilizo um if para ver o valor dela e adicionar +1.. é por ai mesmo???
Pode usar as funções str_pad ou sprintf para gerar esses números de forma "manual" ou então como eu referi atraves do mysql ele gera automaticamente
>
Pode usar as funções str_pad ou sprintf para gerar esses números de forma "manual" ou então como eu referi atraves do mysql ele gera automaticamente
OK atraves do mysql acho que é bem melhor..
mas é só mudar o atributo para zerofill?? como controlar a quantidade de casas?
Altere o valor do "Tamanho/Definir" na imagem que coloquei tenho 8, por exemplo meta 5 ou 6 dependendo do tamanho do numero que quiser retornar
auto_incremente da tabela e para controlar o numero de casas altere o tamanho do int no proprio banco de dados
>
Altere o valor do "Tamanho/Definir" na imagem que coloquei tenho 8, por exemplo meta 5 ou 6 dependendo do tamanho do numero que quiser retornar
beleza valeu... obrigado a todos pelas respostas rápidas....
Se ainda estiver interessado, pegando a idéia dada acima, você pode fazer assim:
<?php
function zerofill( $number , $zeros = null ){
$string = sprintf( '%%0%ds' , is_null( $zeros ) ? 6 : $zeros );
return sprintf( $string , $number );
}
echo zerofill( 2 );
Saída:
000002
Saída para o número 200
000200
Você também pode definir a quantidade de zeros que será adicionado:
echo zerofill( 200 , 12 );
Saída:
000000000200
Você quer saber como colocar os zeros à esquerda? Se for use a função str_pad.