Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoas,
Gostaria que alguém pudesse me auxiliar ou me dizer se tem como fazer o seguinte, tenho uma tabela com produtos, e nela tem um campo codigo, neste campo será preenchido da seguinte forma,
PROD_00001
PROD_00002
PROD_00003
PROD_00004
PROD_00005
PROD_00006
.
PROD_00133 .....
e assim por diante, tem como criar um metodo que retorne este valor já preenchido quando for fazer o cadastro, tipo fazer o select e incrementar um no final do codigo do produto, mas tem que ser nesse formato PROD_00000, se alguem tiver alguma sugestão ficarei grato, obrigado pela atenção de todos.
Att,
Orides Tomkiel Zmovirzynski
Obrigado pela dica Anderson, mas eu já havia feito isto, mas para cada categoria de produtos, ele altera o inicio da legenda, desculpe nao ter mencionado isto antes, tipo, categoria blusas, ficaria BLU_00000, toalhas, ficaria TOA_00000, e assim por diante, mas mesmo assim brigadão pela dica.Orides Tomkiel Zmovirzynski
Acho melhor você separar essas referências em dois campos: um para a sigla e outro para a parte numérica. Daí fica mais fácio trabalhar com as funções numéricas.
Você manteria o id (auto_increment), sugerido pelo Anderson, e a parte numérica de cada sigla será manupilada por você.
[]'s
Olá pessoal,
Só para concluir o tópico e dividir a dúvida com outras pessoas, caso algum cliente queira que seja implementetado algo do genero, eu resolvi o problema com a seguinte gambiarra:
<?$re_count = mysql_query("select * from tabela order by id desc LIMIT 1");$l_count = mysql_fetch_array($re_count);$cod_produto = $l_count["id"] + 1;$conta_cod_produto = strlen($l_count["id"]);if ($conta_cod_produto == 1) {$desc_cod_produto = "PROD_0000"; } else if ($conta_cod_produto == 2) {$desc_cod_produto = "PROD_000"; } else if ($conta_cod_produto == 3) {$desc_cod_produto = "PROD_00"; } else if ($conta_cod_produto == 4) {$desc_cod_produto = "PROD_0"; } else if ($conta_cod_produto == 5) {$desc_cod_produto = "PROD_"; }else {$desc_cod_produto = "PROD_"; }echo "$desc_cod_produto$cod_produto";?>
E isso ai, só não reparem no nome das variaveis e na gambiarra, dava para melhoar é claro e fazer de outra maneira talvez mais simples, se alguem quiser melhorar fique a vontade e poste ai o resultado. Obrigado ao Anderson Mello e ao Beraldo que me deram a ideia de fazer como está.
Atenciosamente
Orides Tomkiel Zmovirzynski
orides@midiaville.com.br
www.midiaville.com.br
Já que são números de produtos sequenciais, o melhor é utilizar o campo de auto-numeração do próprio banco. Aí você pode montar no formato desejado, pegando o número. Ao registrar no banco, ele vai incluir automaticamente o valor, inserindo o próximo do AUTO INCREMENT. ;)
E se você precisar exibir o número antes de cadastrar, faça uma consulta pelo número do id maior. Supondo que o campo auto-numerado é id, faça uma consulta como:
SELECT MAX(id)+1 FROM tabela;
Aí ele retorna o valor. Porém, se for um sistema onde usuários o utilizam simultaneamente, esse valor pode não ser o real, pois alguém pode inserir um produto antes do que foi exibido.
[]s
Anderson Mello