Ir para conteúdo

POWERED BY:

Arquivado

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

Luizboms

soma linhas php mysql

Recommended Posts

Amigos, boa tarde.

 

Sou novo no site, tentei pesquisar em posts antigos e não achei nada sobre este assunto.

 

Tenho uma tabela com cliente, data e valor. Preciso fazer a seguinte operação:

 

Somar o valor da linha anterior com o da linha atual, totalizando na linha atual, vou mostrar isto numa tabela.

 

Tenho apanhado para fazer isto há um mês... se puderem me ajudar será uma mão na roda!!!

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se vocÊ quer somar os 2 valores de um select vou mostrar duas maneiras.

Por query:

//exemplo somando campo valor_nf
$sql="select sum (valor_nf) as valor from tb_nota_fiscal";

Pelo php.

 

$sql="select valor_nf from tb_nota_fiscal";
$executa=mysql_query($sql);
$soma=0;
while($resultado=mysql_fetch_assoc($executa)){
$soma+=$resultado['valor_nf'];

}
echo $soma;

Espero que ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está querendo fazer uma soma simples, ou acumulativa ?

Soma acumulativa:

 

Linha: Valor | Soma acumulada

 

linha1: 3 | 3

linha2: 5 | 8

linha3: 4 | 12

 

Se for soma simples, do modo que o Mário citou acima funcionará.

 

Se quiser fazer acumulativa, sugiro fazer pelo código, porque se quiser fazer no SQL

terá que utilizar cursor em uma Stored Procedure... é um pouco mais complicado.

 

Para fazer via código:

$sql="select valor_nf from tb_nota_fiscal";
$executa=mysql_query($sql);
$soma=0;
$i = 0;
while($resultado=mysql_fetch_assoc($executa)){

//Se for a primeira linha, o acumulado é o proprio valor da NF
$acumulado = ($i == 0) ? $resultado['valor_nf']; $acumulado+$resultado['valor_nf'];

//na proxima varredura do loop, $acumulado ficara 
//com o valor da NF da linha anterior
$acumulado = $resultado['valor_nf'];

//Faz a soma total
$soma+=$resultado['valor_nf'];

echo "<tr>";
echo "<td>";
echo "Linha: " . $i;
echo "</td>";
echo "<td>";
echo $soma;
echo "</td>";
echo "<td>";
echo $acumulado;
echo "</td>";
echo "</tr>";

$i++;
}

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.