Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com o seguinte problema: estou desenvolvendo uma página no dreamweaver que lista 25 resultados de ma tabela de banco de dados e ao final da lista, deveria somar os resultados.
O SQl é o seguinte, e a princípio não tem problema como explicarei: "SELECT despesa.*, tbSoma.soma FROM despesa, (SELECT SUM(CX_VALOR) AS soma FROM despesa) AS tbSoma"
Eu gerei uma região repetida, que mostra dois campos: a descrição de uma despesa e o valor. Sem nenhum problema. Lista 25 itens de despesa. Também consigo inserir o valor total da soma dos campos, desde que não insira a estrutura de região repetida. Momentaneamente, na tabela de teste tenho 3 registros, e o SQL, desde que eu não insira a região repetida, consegue trazer a soma dos três itens corretamente. Quando eu insiro <?php echo $row_caixa['soma']; ?> ele faz isso certinho. O problema é que quando eu insiro a estrutura de repetição da região repetida, ele me traz um valor em branco. Ou seja, não soma.
Este é o código da região repetida:
<?php do { ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="66%"><?php echo $row_caixa['CX_DESTINATARIO']; ?></td>
<td width="34%"><?php echo $row_caixa['CX_VALOR']; ?></td>
</tr>
</table>
<?php } while ($row_caixa = mysql_fetch_assoc($caixa)); ?>
Onde está o problema é que eu não descobri.
Se alguem puder me ajudar, agradeço.
Algumas coisas bobas, que podem estar acontecendo. Verifique aí se:
santosbio
A variavel caixa está definida:
$caixa = mysql_query($query_limit_caixa, $caixa) or die(mysql_error());
quanto ao valor dentro do while, caso eu busque dentro ele repete a soma para cada item listado.Exemplo:
Despesa Valor
CORSAN 34
124
RGE 40
124
Antonio CArlos 50
124
Total
O que eu busco é:
Despesa Valor
CORSAN 34
RGE 40
Antonio CArlos 50
Total (aqui deveria estar o total, 124)
Para isso acredito que deveria imprimir a varável fora do while. Só que daí não aparece o valor.
>
santosbio
A variavel caixa está definida:
$caixa = mysql_query($query_limit_caixa, $caixa) or die(mysql_error());
**$caixa** = mysql_query($query_limit_caixa, **$caixa)** or die(mysql_error());
É possível isso?
<?php do { ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="66%"><?php echo $row_caixa['CX_DESTINATARIO']; ?></td>
<td width="34%"><?php echo $sum[ ] = $row_caixa['CX_VALOR']; ?></td>
</tr>
</table>
<?php } while ($row_caixa = mysql_fetch_assoc($caixa)); ?>
<?php printf( 'Total %s', array_sum( $sum ) ); ?>>
>
santosbio
A variavel caixa está definida:
$caixa = mysql_query($query_limit_caixa, $caixa) or die(mysql_error());
**$caixa** = mysql_query($query_limit_caixa, **$caixa)** or die(mysql_error());
É possível isso?
Este é o codigo completo
$query_caixa = "SELECT despesa.*, tbSoma.soma FROM despesa, (SELECT SUM(CX_VALOR) AS soma FROM despesa) AS tbSoma";
$query_limit_caixa = sprintf("%s LIMIT %d, %d", $query_caixa, $startRow_caixa, $maxRows_caixa);
$caixa = mysql_query($query_limit_caixa, $caixa) or die(mysql_error());
$row_caixa = mysql_fetch_assoc($caixa);
>
<?php do { ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="66%"><?php echo $row_caixa['CX_DESTINATARIO']; ?></td>
<td width="34%"><?php echo $sum[ ] = $row_caixa['CX_VALOR']; ?></td>
</tr>
</table>
<?php } while ($row_caixa = mysql_fetch_assoc($caixa)); ?>
<?php printf( 'Total %s', array_sum( $sum ) ); ?>
Eu não entendi como fazer...
<?php printf( 'Total %s', array_sum( $sum ) ); ?>
Te dei o script pronto, é só botar pra 'rodar' ;)
Muito confusa sua explicação.
você quer o resultado da soma dos valores de $row_caixa['CX_VALOR'] ?