keell_777 1 Denunciar post Postado Outubro 30, 2013 Boa tarde pessoal, Estou desenvolvendo um sisteminha de finanças pra mim mesmo, e estou com uma dúvida. Tenho uma tabela de contas a pagar, e soma um total das contas, uma coisa que não consegui resolver é, ela não soma números acima de mil exemplo se os valores forem 10,00 50,00 70,00 100,00 soma tranquilamente agora se eu quiser adicionar um valor acima de mil não vai somar como 10,00 50,00 70,00 100,00 1.100.00 Sei que não é possível somar com ", (Virgula)" por isso estou passando os valores para o DB com ". (Pontos)". Meu código está da seguinte forma: $pesquisa = mysql_query("SELECT SUM(price) FROM conta WHERE status=''"); while($sum = mysql_fetch_array($pesquisa)): $soma = 'R$ ' . number_format ($sum['SUM(price)'], 2,',', '.'); endwhile; Alguém poderia me ajudar? Obrigado a todos! Compartilhar este post Link para o post Compartilhar em outros sites
André Rodrigues 0 Denunciar post Postado Outubro 30, 2013 estude conceito de banco de dados ,tem uma funcao chamada * SUM() > ELA SOMA UMA COLUNA ou MAX() > TRAZ O VALOR MAXIMO DE UMA COLUNA ou MIN() > TRAZ O VALOR MINIMO DE UMA COLUNA ou AVG() > TRAZ A MEDIA DE UMA COLUNA ... no banco fica mais ou menos assim ... SELECT TRIMESTRE1 + TRIMESTRE2 + TRIMESTRE3 + TRIMESTRE4 AS "TOTAL 2009" FROM FATURAMENTO WHERE ANO = 2009; um exemplo de trimestre de um sistema que fiz , ai você substitui isso ...quando você quiser trazer as somas vc vai trazer nos select que vai ser executado no php etc.. ai vc so escrever ele em php etc...comigo funciona .. Compartilhar este post Link para o post Compartilhar em outros sites
keell_777 1 Denunciar post Postado Outubro 30, 2013 Boa tarde André, Então eu estou utilizando a função SUM() e está funcional, porem não esta me dando a soma real quando utilizo valores acima de mil. por exemplo no db ta da seguinte forma: 90.00 39.00 50.00 125.00 1.244.00 Mais o total: 305,24 Teria algum palpite do que esta ocorrendo? Valew! Compartilhar este post Link para o post Compartilhar em outros sites
raonibs 64 Denunciar post Postado Outubro 30, 2013 O campo é do tipo int ou float? Se for string acho que não funciona. Também verifique o ponto e a virgula, tem que estar de acordo. Isto esta errado: 1.244.00 deveria ser 1.244,00 ou 1,244.00 conforme a formatação do milhar. Compartilhar este post Link para o post Compartilhar em outros sites
keell_777 1 Denunciar post Postado Outubro 30, 2013 O campo esta em varchar, se colocar int ele não vai me dar os '.' Assim R$ 3,00 vira R$ 0,3... Vlw pela resposta amigo! Compartilhar este post Link para o post Compartilhar em outros sites
keell_777 1 Denunciar post Postado Novembro 5, 2013 Ai pessoal, passei o campo para float e ta somando certinho agora. o problema esta sendo pra mostrar em Real. O Código: $pesquisa = mysql_query("SELECT SUM(price) FROM conta WHERE status=''"); while($sum = mysql_fetch_array($pesquisa)): $soma = 'R$ ' . number_format ($sum['SUM(price)'], 2,',','.'); Gera algo como: R$ 100.656,00 e deveria aparecer R$ 1.006,56. Sem o numer_format o numero fica: R$ 100656 Alguém poderia me ajudar? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Novembro 6, 2013 O código PHP apresentado está certo. Se você armazenou como float, não esqueça de salvar os "centavos" também. Aparentemente, você armazenou como inteiro em um campo float, por isso sua soma está errada. Pegue uma linha de insert (uma SQL que dá para rodar na mão a partir de um console) e veja se ele está enviando para o banco de forma correta. Compartilhar este post Link para o post Compartilhar em outros sites
rafaelwn 4 Denunciar post Postado Novembro 6, 2013 Keell, Você precisa manter os dados armazenados na formatação de "dados armazenados", esquece formatação na DB. No MySQL o campo ideal e padrão pra valores de dinheiro é o campo "DECIMAL(10,2)" onde DECIMAL é o tipo do campo, e 10,2 é o tamanho. Os valores vão ficar assim 0.00 onde o valor antes do ponto é inteiro (reais), e depois do zero é decimal (centavos). Por exemplo, mil e trezentos reais e 45 centavos ficaria 1300.45 e isso é o que você precisa pra armazenar. No php é onde você formata, usando esses métodos que você já conhece. Dica: Na query onde vc usa SUM(price), adicione um "AS price_total" depois o comando SUM, pro campo vir no resultado com nome "price_total". Valeu Compartilhar este post Link para o post Compartilhar em outros sites
keell_777 1 Denunciar post Postado Novembro 7, 2013 Ae rafaelwn e hufersil, Obrigado pela sua resposta. Agora ta tudo certinho. rafaelwn só uma dúvida a respeito de sua dica, na query ficaria: $pesquisa = mysql_query("SELECT SUM(price)AS price_total FROM conta WHERE status=''"); e para mostrar assim?: $soma = 'R$ ' . number_format ($sum['SUM(price)'], 2,',','.'); por que não ta dando certo, esta resultado 0,00 Abraço a todos! Compartilhar este post Link para o post Compartilhar em outros sites