2009-12-20 29 views
0

我有一個表,看起來像這樣:比較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>'; 
    } 

?>

如果我想讓每一行比較它自己的行,然後做一些事情(如更改字體顏色或<td>背景顏色),我該怎麼做?例如,13和22會變成粗體或紅色或其他東西,而12不會改變。

+0

SQL注入。 HTML注入。請看一下mysql_real_escape_string和htmlspecialchars。數字'id'也是無效的,依賴'SELECT *'返回的列的順序是脆弱的。 – bobince 2009-12-20 23:41:08

回答

1

,你可以通過在循環的末尾設置$分組= $行保留以前行的軌道,然後與之比較的分組,$顏色=($上一頁& & $行[「X」]> $上一頁[ 'X']) ? '綠':'紅';

對於更高級的事情,您可以先將所有行放入數組中:$ rows = array(); while($ row = mysql_fetch_assoc($ result)){$ rows [] = $ row; }

+0

這似乎是正確的做法。但是當我這樣做的時候,它會大膽地處理那一行中的所有事情。不過,我會盡力弄清楚。謝謝。 – Andrew 2009-12-20 22:58:28