0

我有一个数据库和表来获取 OID 结果并将它们插入到表中。这个表里面有多种类型的值,我需要最终表能够区分它们。我将结果按 group by 排序,并将结果过滤到表格中mysql_fetch_array()

继承人我有代码明智的。

$result = mysql_query("SELECT MAX(t1)AS t1, device, test, value FROM ACRC WHERE        test='Fan Speed' GROUP BY device, test ORDER BY device ASC, test ASC LIMIT 4");

echo "<table border='3' cellpadding='3'>
    <tr>
    <th>Timestamp</th>
    <th>Unit</th>
    <th>Test</th>
    <th>Result</th>
    </tr>
    <tbody>";

while($row = mysql_fetch_array($result))
    {
    echo"<tr>";
    echo"<td>". $row['t1']. "</td>";
    echo"<td>". $row['device']. "</td>";
    echo"<td>". $row['test']. "</td>";
    echo"<td>". $row['value']." %</td>";
    echo"</tr>";
    }


$result = mysql_query("SELECT MAX(t1)AS t1, device, test, value FROM ACRC WHERE test<>'Fan Speed' GROUP BY device, test ORDER BY  test ASC, device ASC LIMIT 8");


while($row = mysql_fetch_array($result))
    {
    echo"<tr>";
    echo"<td>". $row['t1']. "</td>";
    echo"<td>". $row['device']. "</td>";
    echo"<td>". $row['test']. "</td>";
    echo"<td>". $row['value']." F</td>";
    echo"</tr>";
    }


echo"</table>";

此设置当前有效,但我想mysql_fetch_array()使用 if/then/else 语句将其压缩为一个,因为每当风扇速度在测试列中时,该值都会在其表方的末尾添加一个 % 并且每当显示温度时在测试列中,我需要一个 F 出现在值方格中。数据当前在我的数据库中存储为一个简单的整数。

 --------------------
|Fan Speed  | 55   % |
----------------------
|Temperature| 70   F |
 --------------------
4

2 回答 2

1

只需摆脱您的 WHERE 条件,以便所有结果都出现在一个查询中。然后,正如您在问题标题中提到的那样,使用if()回显结果的条件来确定您是否输出 a %F或任何下一个高于该值的值。

while($row = mysql_fetch_array($result))
    {
?>
<tr>
    <td><?php echo $row['t1']; ?></td>
    <td><?php echo $row['device']; ?></td>
    <td><?php echo $row['test']; ?></td>
    <td><?php echo $row['value']; ?> <?php echo('$row['test'] === 'Fan Speed' ? '%' : 'F'); ?></td>
</tr>
<?php
    }

或者,如果你想花哨并保持代码干净,你甚至可以在 SQL 查询中使用 case 语句来填充一个新字段,如下所示:

SELECT
  MAX(t1)AS t1,
  device,
  test,
  value,
  (CASE test WHEN 'Fan Speed' THEN '%' ELSE 'F') AS symbol
FROM ACRC
...

代码可能是:

while($row = mysql_fetch_array($result))
    {
?>
<tr>
    <td><?php echo $row['t1']; ?></td>
    <td><?php echo $row['device']; ?></td>
    <td><?php echo $row['test']; ?></td>
    <td><?php echo $row['value'] . ' ' . $row['symbol']; ?></td>
</tr>
<?php
    }
于 2013-04-03T23:51:29.947 回答
0

如果我没有正确理解,请告诉我!

while($row = mysql_fetch_array($result))
    {
if( $row['value']==70)
{
    echo"<tr>";

    echo"<td>". $row['device']. "</td><td>F</td>";

    echo"</tr>";
    }else
{
 echo"<tr>";

    echo"<td>". $row['device']. "</td><td>" % . "</td> 

    echo"</tr>";
}
}
于 2013-04-03T23:54:05.190 回答