在PHP中显示SQL表并比较值
我有这张桌子:在PHP中显示SQL表并比较值,php,mysql,sql,Php,Mysql,Sql,我有这张桌子: +----+---------------------+----------+---------+---------+---------+ | id | date | client1 | client2 | client1 | client1 | +----+---------------------+----------+---------+---------+---------+ | 1 | 2013-04-17 16:15:46 |
+----+---------------------+----------+---------+---------+---------+
| 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 |
+----+---------------------+----------+---------+---------+---------+
我在PHP中显示它,如下所示:
<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>
<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>
日期
客户1
客户2
客户3
客户4
我想做的是,在表中显示信息,将值与来自同一客户机的上一个日期进行比较,并放置显示它增长或减少了多少。设置一些变量以跟踪以前的值
$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;
}
?>
你的意思是这样的吗:
<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>
<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>
日期
客户1
客户2
客户3
客户4
我强烈建议切换到
PDO
或至少mysqli
因为mysql.*
函数被弃用…对,对于client
列,再次?:)为什么表中的“client1”列重复了3次?那可能是打字错误吗?