2

I have this table:

+----+---------------------+----------+---------+---------+---------+
| id | date                | client1  | client2 | client1 | client1 |
+----+---------------------+----------+---------+---------+---------+
|  1 | 2013-04-17 16:15:46 |     8592 |    9786 |    6471 |       0 | 
|  2 | 2013-04-27 16:15:46 |     8617 |    9876 |    7130 |   40243 | 
|  3 | 2013-04-28 17:57:30 |     8617 |    9884 |    7211 |   41657 | 
|  4 | 2013-04-29 13:28:11 |     8616 |    9886 |    7270 |   42516 | 
+----+---------------------+----------+---------+---------+---------+

And I display it in a PHP like this:

  <table width="800" border="0" cellspacing="3" cellpadding="3" style="margin-left:auto; margin-right:auto">
  <tr>
    <th scope="col" style="text-align:center; font-weight:bold">Date</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 1</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 2</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 3</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 4</th>
  </tr>
  <?

$queryuv = mysql_query("SELECT * FROM com_information ORDER BY date ASC");
while ($resultuv=mysql_fetch_assoc($queryuv)) {
        $date=$resultuv['date'];
        $client1=$resultuv['client1'];
        $client2=$resultuv['client2'];
        $client3=$resultuv['client3'];
        $client4=$resultuv['client4'];          
        ?>            
  <tr>
    <th scope="row" style="text-align:left"><?=$date?></th>
    <td style="text-align:center"><?=number_format($client1,0,'.',',');?></td>
    <td style="text-align:center"><?=number_format($client2,0,'.',',');?></td>
    <td style="text-align:center"><?=number_format($client3,0,'.',',');?></td>
    <td style="text-align:center"><?=number_format($client4,0,'.',',');?></td>
  </tr>

<? } ?>
</table>

What I would like to do, is in the table were I display the info, compair the value with the previous date from the same client, and place display how much did it grow or decrease.

2
  • Right, for which client column, again? :) Commented Apr 30, 2013 at 18:49
  • Why is the "client1" column duplicated 3 times in your table? Is that possibly a typo? Commented Apr 30, 2013 at 19:02

2 Answers 2

1

set some variables to track the previous values

$lastclient1 = 0 ;
$lastclient2 = 0 ;
$lastclient3 = 0 ;
$lastclient4 = 0 ;

Carry on as before

$queryuv = mysql_query("SELECT * FROM com_information ORDER BY date ASC");

while ($resultuv=mysql_fetch_assoc($queryuv)) {
        $date=$resultuv['date'];
        $client1=$resultuv['client1'];
        $client2=$resultuv['client2'];
        $client3=$resultuv['client3'];
        $client4=$resultuv['client4'];          
        ?>   

output your data as before - For the movement data you can use:

<?=number_format($client1-$lastclient1,0,'.',',');?>

set the last row data just before the end of the loop

<?
        $lastclient1=$client1;
        $lastclient2=$client2;
        $lastclient3=$client3;
        $lastclient4=$client4;
      }
?>
Sign up to request clarification or add additional context in comments.

Comments

0

Do You mean something like this:

<table width="800" border="0" cellspacing="3" cellpadding="3" style="margin-left:auto; margin-right:auto">
  <tr>
    <th scope="col" style="text-align:center; font-weight:bold">Date</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 1</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 2</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 3</th>
    <th scope="col" style="text-align:center; font-weight:bold">Client 4</th>
  </tr>
  <?

$queryuv = mysql_query("SELECT * FROM com_information ORDER BY date ASC");

$client1 = false;
$client2 = false;
$client3 = false;
$client4 = false;

while ($resultuv=mysql_fetch_assoc($queryuv)) { ?>            
  <tr>
    <th scope="row" style="text-align:left"><?=$resultuv['date']?></th>
    <td style="text-align:center"><?=number_format($resultuv['client1'],0,'.',',');?><?if($client1 !== false) echo ($client1-$resultuv['client1'] > 0 ? '+' : '-') . number_format($client1-$resultuv['client1'], 0, '.', ',')?> </td>
    <td style="text-align:center"><?=number_format($resultuv['client2'],0,'.',',');?><?if($client2 !== false) echo ($client2-$resultuv['client2'] > 0 ? '+' : '-') . number_format($client2-$resultuv['client2'], 0, '.', ',')?></td>
    <td style="text-align:center"><?=number_format($resultuv['client3'],0,'.',',');?><?if($client3 !== false) echo ($client3-$resultuv['client3'] > 0 ? '+' : '-') . number_format($client3-$resultuv['client3'], 0, '.', ',')?></td>
    <td style="text-align:center"><?=number_format($resultuv['client4'],0,'.',',');?><?if($client4 !== false) echo ($client4-$resultuv['client4'] > 0 ? '+' : '-') . number_format($client4-$resultuv['client4'], 0, '.', ',')?></td>
  </tr>
<?
    $client1 = $resultuv['client1'];
    $client2 = $resultuv['client2'];
    $client3 = $resultuv['client3'];
    $client4 = $resultuv['client4'];
?>
<? } ?>
</table>

???

And I highly recommend switching to PDO or at least mysqli as of mysql_* functions being deprecated...

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.