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.

4

2 回答 2

1

设置一些变量来跟踪以前的值

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

像以前一样继续

$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'];          
        ?>   

像以前一样输出您的数据 - 对于您可以使用的运动数据:

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

在循环结束之前设置最后一行数据

<?
        $lastclient1=$client1;
        $lastclient2=$client2;
        $lastclient3=$client3;
        $lastclient4=$client4;
      }
?>
于 2013-04-30T19:02:10.240 回答
0

你的意思是这样的:

<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>

???

我强烈建议切换到PDO或至少切换到不推荐使用mysqlimysql_*功能......

于 2013-04-30T19:10:39.963 回答