我有一个看起来像这样的表:
(所以你可以直观地想象)
13 22 12
10 8 12
HTML:
<table>
<tr>
<td>13</td>
<td>22</td>
<td>12</td>
<tr>
<td>10</td>
<td>8</td>
<td>12</td>
</tr>
</table>
它由mysql行填充:
<?php
$i = 1;
$id = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `username` = '".$_GET['user']."'"));
$query = mysql_query("SELECT * FROM `data` WHERE `user_id` = '".$id['id']."' ORDER BY `datetime` DESC");
while($row = mysql_fetch_assoc($query)) {
echo '<tr><td>'.date('m/d H:i', strtotime($row['datetime'])).'</td>';
array_shift($row);
array_shift($row);
array_shift($row);
$new = array_chunk($row, 3);
foreach($new as $value => $var) {
if($var[1] == null) { $var[1] = "--"; }
echo '<td id="'.$i++.'">'.$var[1].'</td>';
}
echo '</tr>';
}
&GT;
如果我想让每一行与其上方的行进行比较,然后执行某些操作(例如更改字体颜色或<td>
背景颜色),我该怎么做?例如,13和22将变为粗体或红色或其他东西,12不会改变。
答案 0 :(得分:1)
你可以通过在循环结束时设置$ prev = $ row来跟踪上一行,然后与prev进行比较,$ color =($ prev&amp;&amp; $ row ['x']&gt; $ prev ['x'])? 'green':'red';
对于更高级的东西,你可以先将所有行放到一个数组中:$ rows = array(); while($ row = mysql_fetch_assoc($ result)){$ rows [] = $ row; }