Wednesday 15 February 2012

php - Arithmetic Calculation based on previous MySQL queries -



php - Arithmetic Calculation based on previous MySQL queries -

i have db table 'account' has various types of transactions. succesfully carried out query find "total credit" , "total debit". need help calculate balance .i.e., if "total credit > total debit" reply should "balance cr." else if "total credit < total debit" reply should "balance dr." else reply should "0"

<?php $pp= ("select sum(amount) business relationship (mode='cash' , type='payment') or (mode='cash' , type='purchase')"); $total_pp = mysql_query($pp); while($gtotal_pp = mysql_fetch_array($total_pp)){ echo "<table><tr><td>total credit</td><td>:</td><td>$</td><td align='right'>" . $gtotal_pp['sum(amount)'] . "</td></tr>"; echo "<br/>"; } $sr = ("select sum(amount) business relationship (mode='cash' , type='sale') or (mode='cash' , type='reciept')"); $total_sr = mysql_query($sr); while($gtotal_sr = mysql_fetch_array($total_sr)){ echo "<tr><td>total debit</td><td>:</td><td>$</td><td align='right'>" . $gtotal_sr['sum(amount)'] . "</td></tr>"; } $bgtotal_pp = $gtotal_pp['sum(amount)']; $bgtotal_sr = $gtotal_sr['sum(amount)']; $balance_cr = $bgtotal_pp - $bgtotal_sr; $balance_dr = $bgtotal_sr - $bgtotal_pp; if ($bgtotal_pp > $bgtotal_sr) echo "<tr><td>balance (cr.)</td><td>:</td><td>$</td><td align='right'>" . $balance_cr . "</td></tr></table>"; else if ($bgtotal_pp < $bgtotal_sr) echo "<tr><td>balance (dr.)</td><td>:</td><td>$</td><td align='right'>" . $balance_dr . "</td></tr></table>"; else echo"<tr><td>balance</td><td>:</td><td></td><td align='right'>0.00</td></tr></table">; ?>

when

$bgtotal_pp = "(some number)"; $bgtotal_sr = "(some number");

the code works perfectly. when seek bring previous query instead of number, shows "else statement".

thanks in advance.

this in regards queries, not php code (with such issues using mysql_). why doing multiple queries , arithmetic in application. can 1 query:

select sum(case when mode = 'cash' , type in ('payment', 'purchase') amount end) credit, sum(case when mode = 'cash' , type in ('sale', 'receipt') amount end) debit, sum(case when mode = 'cash' , type in ('payment', 'purchase') amount when mode = 'cash' , type in ('sale', 'receipt') - amount else 0 end) balance account;

normally, expect where clause or group by info specific accounts, not in original data.

php mysql math addition subtraction

No comments:

Post a Comment