Lomaster 0 Denunciar post Postado Maio 19, 2011 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
Vinicius Ianni 189 Denunciar post Postado Maio 20, 2011 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
Lomaster 0 Denunciar post Postado Maio 20, 2011 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
Lomaster 0 Denunciar post Postado Maio 20, 2011 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
Lomaster 0 Denunciar post Postado Maio 22, 2011 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