Ir para conteúdo

POWERED BY:

Arquivado

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

keell_777

Somar Coluna MySQL com PHP acima de mil

Recommended Posts

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

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

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

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

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

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

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

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

×

Informação importante

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