将MySQL结果相互比较,同时将它们放在表格中

时间:2009-12-20 22:12:14

标签: php mysql

我有一个看起来像这样的表:

(所以你可以直观地想象)

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不会改变。

1 个答案:

答案 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; }