Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lomaster

[Resolvido] tipo moeda

Recommended Posts

Criei uma tabela que insere descrição e valor de produtos. Em pesquisa pela net, verifiquei que o tipo mais usado é o float, decimal e int. Optei por usar decimal(10,2). Ocorre que, quando insiro por ex:

22,08

ele mostra certinho, do jeito digitado, porém, quando coloco um número a mais,como por exemplo:

222,08 ou 2.222,08

ele grava apenas 22,08.

isso é problema com o Mysql ou o php?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uso o decimal num dos projetos aqui, e não tive algum problema semelhante ao seu.

Para irmos eliminando possibilidades, acho interessante verificar primeiro o script php para ver se não está faltando alguma formatação/conversão para ser inserido corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para o campo utilizo o seguinte script

<input name="valor" type="text" id="valor" onkeypress="return maskKeyPress(event)" onkeydown="FormataMoeda(this,10,event)"  value="<?php echo KT_escapeAttribute($row_rscredito['valor']); ?>" size=" 50" maxlength="50" />

Mesmo quando eu retiro a função de máscara, a inserção ocorre de forma erronea.

 

abaixo o código para inserir no BD

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO credito (id_credito, id_cliente, origem, destino, descricao, valor, data_credito) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['id_credito'], "int"),
                      GetSQLValueString($_POST['id_cliente'], "int"),
                      GetSQLValueString($_POST['origem'], "text"),
                      GetSQLValueString($_POST['destino'], "text"),
                      GetSQLValueString($_POST['descricao'], "text"),
                      GetSQLValueString($_POST['valor'], "double"),
                      GetSQLValueString($_POST['data_credito'], "date"));

 mysql_select_db($database_conn, $conn);
 $Result1 = mysql_query($insertSQL, $conn) or die(mysql_error());
}
?>

Ja testei com float, int, decimal e não funcionou.

 

Também tentei inserir direto no mysql via código. Digitei 123456789. Na consulta que fiz ao banco ficou: 12345678,00.

depois fiz o teste na página que montei. Assim digitei:1.234.567,89 , mas o resultado no Banco de dados foi : 1.23

Pode ser que o erro seja na máscara.......

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom....

testei e o erro é com a máscara.

Alterei a máscara e recebi o seguinte resultado:R$ 22.222.222,00.No entanto, eu digitei R$ 22.222.222,22, ou seja, os centavos não estão sendo computados.!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius,

 

ta resolvido

realmente era poblema com a virgula na hora da máscara. Como preciso rodar este script logo, não vou colocar a máscara temporariamente no campo valor.vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.