Сравнивая результаты MySQL друг с другом, помещая их в таблицу - PullRequest
0 голосов
/ 21 декабря 2009

У меня есть таблица, которая выглядит так:

(чтобы вы могли изобразить это визуально)

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>';
    }

?>

Если бы я хотел, чтобы каждая строка сравнивалась со строкой над ней, а затем что-то делал (например, менял цвет шрифта или <td> цвет фона), как бы я это сделал? Например, 13 и 22 изменятся на полужирный или красный или что-то в этом роде, а 12 не изменятся.

1 Ответ

1 голос
/ 21 декабря 2009

вы можете отслеживать предыдущую строку, установив $ prev = $ row в конце цикла, а затем сравнить с prev, $ color = ($ prev && $ row ['x']> $ prev ['x '])? «зеленый»: «красный»;

для чего-то более сложного вы можете сначала получить все строки в массиве: $ row = array (); while ($ row = mysql_fetch_assoc ($ result)) {$ row [] = $ row; }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...