0

OID の結果を取得してテーブルに挿入する 1 つのデータベースとテーブルがあります。このテーブルには複数のタイプの値が含まれており、それらを区別できるようにするために最終的なテーブルが必要です。結果を 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 ステートメントを使用して 1 つに圧縮したいと思います。ファンの速度がテスト列にあるときはいつでも、値にはテーブルの四角形の最後に % が追加され、温度が表示されるときはいつでもテスト列の値の四角に F が表示される必要があります。データは現在、データベースに単純な整数として保存されています。

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

2 に答える 2

1

すべての結果が 1 つのクエリに表示されるように、WHERE 条件を取り除くだけです。次に、質問のタイトルに記載されているif()ように、結果をエコーアウトする条件を使用して%、 、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 に答える