Overhead 0 Denunciar post Postado Fevereiro 22, 2010 Boa tarde, Como faço para eu gravar e seguinte valor no banco de dados mysql. R$1.500,15? Eu tenho que utilizar alguma função pra retirar o ponto e virgula antes do insert? Eu estou utilizando o tipo float(10,2) Alguem pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 22, 2010 Nao, se o seu campo no MySql for Varchar você pode colocar no Insert a variável que recebe o valor com aspas. Dae fica tudo certo. Entra com ponto, virgula e tudo. Compartilhar este post Link para o post Compartilhar em outros sites
Quelipe 15 Denunciar post Postado Fevereiro 22, 2010 Amigo, para o campo float você usa apenas um ponto: 1500.15 Quando você quiser retornar o valor que está no DB para o formato em moeda nacional usa-se a função: number_format() o padrão brasileiro é: number_format($numero, 2, ',', '.'); Te aconselho tratar o valor antes de tentar gravar no DB. Compartilhar este post Link para o post Compartilhar em outros sites
Overhead 0 Denunciar post Postado Fevereiro 22, 2010 Nao, se o seu campo no MySql for Varchar você pode colocar no Insert a variável que recebe o valor com aspas. Dae fica tudo certo. Entra com ponto, virgula e tudo. Tudo bem...até da pra usar varchar como você mencionou colega...Mas se depois que querer dar um select SELECT SUM(campo) as soma FROM tabela vai somar tudo errado =( Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 22, 2010 SELECT SUM(Cast(campo as integer)) as soma FROM tabela Ou você deixa o campo integer mesmo e tira o ponto e a virgula na hora de mandar para o banco. depois quando você resgatar você formata. Compartilhar este post Link para o post Compartilhar em outros sites
Geraldo França 0 Denunciar post Postado Fevereiro 22, 2010 Nao, se o seu campo no MySql for Varchar você pode colocar no Insert a variável que recebe o valor com aspas. Dae fica tudo certo. Entra com ponto, virgula e tudo. Amigo, Se os bancos de dados possuem campos do tipo MONEY, DOUBLE ou FLOAT é porque são para serem usados. Você resgatar um valor de um campo, converter o tipo dele para depois somar e mostrar o resultado para o usuário leva 10 vezes mais tempo do que pegar o seu campo do tipo próprio para manipulação de valores e somar. Essa opção de utilizar um campo do tipo VARCHAR simplesmente não dá certo. Utilize o number_format que irá funcionar muito bem. Abraço. Geraldo P. França Compartilhar este post Link para o post Compartilhar em outros sites
Dee 0 Denunciar post Postado Fevereiro 22, 2010 Nao, se o seu campo no MySql for Varchar você pode colocar no Insert a variável que recebe o valor com aspas. Dae fica tudo certo. Entra com ponto, virgula e tudo. Amigo, Se os bancos de dados possuem campos do tipo MONEY, DOUBLE ou FLOAT é porque são para serem usados. Você resgatar um valor de um campo, converter o tipo dele para depois somar e mostrar o resultado para o usuário leva 10 vezes mais tempo do que pegar o seu campo do tipo próprio para manipulação de valores e somar. Essa opção de utilizar um campo do tipo VARCHAR simplesmente não dá certo. Utilize o number_format que irá funcionar muito bem. Abraço. Geraldo P. França Oloco! Que escola você estudou ? Quero entrar nela. Para que usar o number_format() se já tem o tipo de campo MONEY, DOUBLE e FLOAT como você diz ? O valor já vem formatado com ponto e vírgula ? Então não precisa de number_format(). E outra o valor dele tem vírgula e vírgula é tratada como String, Varchar. Portanto, não vejo diferença nenhuma, se irá usar o number_format() ambas as maneiras. Compartilhar este post Link para o post Compartilhar em outros sites
Geraldo França 0 Denunciar post Postado Fevereiro 22, 2010 Escola da vida, né ? Basta saber interpretar o que foi dito nas respostas anteriores, e usar a inteligência para aplicar. No mais sem comentários. Compartilhar este post Link para o post Compartilhar em outros sites
WarLiKe 0 Denunciar post Postado Fevereiro 22, 2010 Se o formato enviado será sempre com o milhar separado por ponto e os centavos com vírgula é só fazer um tratamento assim: $numero = str_replace('.', '', $_POST['numero']); $numero = str_replace(',', '.', $numero); // Saída de 1.500,25 para 15000.25 que é como o campo float trabalha =] //Pode inserir no banco Pra mostrar na tela depois de um select use number_format $numero = number_format($numero, 2, ',', '.'); //O que era 1500.25 passa a ser 1.500,25 Compartilhar este post Link para o post Compartilhar em outros sites
Overhead 0 Denunciar post Postado Fevereiro 22, 2010 Obrigado a todos por participarem do meu tópico, com ajuda de vcs conseguir resolver meu problema. Obrigado Isaque de Souza, Geraldo França, Dee e Quelipe. Valeu galera...até a próxima!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites