Campo DECIMAL

MySQL

18/10/2013

Pessoal, bom dia.

Estou desenvolvendo um sistema em PHP e MySQL. Estou com o seguinte problema:

Tenho um campo no meu banco de dados para o valor do aluguel, por ser tratar de reais, deixe com campo como DECIMAL(10,2). Se eu passar o valor 650,00, ele cadastra, sem problemas, 650. Porém, quando passo o valor 1.000,00, ele cadastra somente 1. Alguém sabe me dizer como posso resolver isso?


Abraço!
Abraão Almeida

Abraão Almeida

Curtidas 0

Respostas

Felippe Tadeu

Felippe Tadeu

18/10/2013

Boa tarde, tudo bem ?

Verifique as configurações regionais do SO!

Eu até postei uma dúvida de como alterar o decimal de " . " para " , " mas ninguém soube resolver a dúvida, então eu acabei fazendo na mão, só que é desktop.

Por padrão R$1500,00 <> R$1500.00

O Mysql trabalha com configurações americanas.
GOSTEI 0
Abraão Almeida

Abraão Almeida

18/10/2013

Alaplaia, boa noite!

Eu consegui resolver o problema. O problema todo estava sendo por que o campo está como DECIMAL(10,2), e o valor que eu estava passando era, por exemplo, R$ 1.000,00. Baseado nisso, quando ele identificava o '.', automaticamente truncava o valor. Não cadastrando nada além do ponto no banco de dados. Então, eu fiz o seguinte.

$aluguel = str_replace('.','',$aluguel);

$aluguel = str_replace(',','.',$aluguel);

Então, primeiro eu verifico se há ponto. Se houver, substituo por vazio, sem espaço, claro. Depois, verifico se há vírgula. Se houver, substituo por ponto.

Fazendo assim, quando passo o valor, por exemplo, R$ 1.200,00, ele cadastra como 1200,00. Quando faço o retorno para exibição do sistema, apenas uso a função number_format() e tudo está resolvido!


Abraço!!!
GOSTEI 0
José

José

18/10/2013

Olá amigo Abrão que bom que conseguiu solucionar sua duvida
e agradeço em nome de todos do fórum, por ter compartilhado a solução conosco.
GOSTEI 0
POSTAR