Marcio_123 1 Denunciar post Postado Abril 14, 2017 Pessoal estou importando um arquivo tabela de salario feita em excel salva como CSV (separado por virgula) (*.csv) Nos campos salario tipo moeda ainda no excel eu formato os campos como geral porque não aceita simbolo de moeda R$ 975,58 formato como geral 975,58 O que ocorre é que apos importação para o mysql ele não pega os numeros apos a virgula, ou seja ele arredonda para mais no caso acima ficaria 976 meu codigo usado na importação para o mysql. <?php if ($_FILES[csv][size] > 0) { //pega o arquivo csv $file = $_FILES[csv][tmp_name]; $handle = fopen($file,"r"); //insere no banco de dados do { if ($data[0]) { mysql_query("INSERT INTO tb_folha_pagamento (nome, funcao, email, idade, cidade, salario, liquido, situacao) VALUES ( '".addslashes($data[0])."', '".addslashes($data[1])."', '".addslashes($data[2])."', '".addslashes($data[3])."', '".addslashes($data[4])."', '".addslashes($data[5])."', '".addslashes($data[6])."', '".addslashes($data[7])."' ) "); } } while ($data = fgetcsv($handle,1000,",","'")); //MENSAGEM $mgs = "Folha de Pagamento importada com Sucesso!"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Abril 14, 2017 qual formato do campo na tabela? tem que ser decimal e o decimal do mysql e do php é com ponto no lugar de virgula que é o padrão americano Compartilhar este post Link para o post Compartilhar em outros sites
Marcio_123 1 Denunciar post Postado Abril 14, 2017 ola marsolim no excel os campos de numeros esta no formato GERAL. 123,55 258,75 615,09 1650,25 No banco de dados os campos estão como tipo VARCHAR - apos importar esta apenas mudando a , (virgula) para . (ponto) 123.55 258.75 615.09 1650.25 Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Abril 14, 2017 varchar é para string e não para número. como eu falei número decimal tem que ser armazenado em campo decimal tenta mudar aí o campo Compartilhar este post Link para o post Compartilhar em outros sites
Marcio_123 1 Denunciar post Postado Abril 14, 2017 mudei aqui, o que ocorre é que ele deixa os numeros apos a , (virgula) zerado 123,55 258,75 615,09 1650,25 depois de mudar de VARCHAR para DECIMAL no mysql fica assim 123.00 258.00 615.00 1650.00 Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Abril 14, 2017 tu pode tentar converter pra decimal na hora de gravar com floatval(addslashes($data[n])) ou (float)addslashes($data[n]) onde [n] é o indice desse valor na array Compartilhar este post Link para o post Compartilhar em outros sites
Marcio_123 1 Denunciar post Postado Abril 14, 2017 Brother fiz assim na saida do campo <?=$dados[liquido]; ?> usei o number_format <?= number_format($dados[liquido],2,",","."); ?> resultado final 100% OK para quem precisar so usar ai galera. 9.728,06 315,66 1.722,55 Compartilhar este post Link para o post Compartilhar em outros sites
Marcio_123 1 Denunciar post Postado Abril 14, 2017 marsolim teria uma instrução rapida para somar os camps em gerando o TOTAL Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Abril 14, 2017 vindos duma consulta sql? se for $qry = "SELECT SUM(nome_campo) as soma FROM nome_tabela"; // faz a consulta normalmente... $row = ... //pega o resultado da consulta normalmente com fetch... echo $row["soma"]; Compartilhar este post Link para o post Compartilhar em outros sites
Marcio_123 1 Denunciar post Postado Abril 14, 2017 marsolim minha consulta ta assim, mas deu erro <? $sql = "SELECT SUM(salario) as soma FROM folha_pagamento"; while($dados=mysql_fetch_array($sql)){ ?> Total da Folha: <? echo $dados["soma"]; ?> <? } ?> Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Abril 14, 2017 mas tu não fez a consulta aí, só criou a string de consulta e já tentou pegar os dados sem fazer a consulta cadê o mysql_query($sql); antes do while? Compartilhar este post Link para o post Compartilhar em outros sites
Marcio_123 1 Denunciar post Postado Abril 18, 2017 agora fiz e deu certo, valeu brother abraços Compartilhar este post Link para o post Compartilhar em outros sites