0

5 つの MYSQL 結果セットを使用して構築された 8 つのテーブルのダッシュボードを表示する php/html を使用するページがあります。列セルに含まれる値に基づいて、さまざまな列の背景色を変更したいと考えています。私はここまで私を導いた同様のトピックのいくつかのスレッドを見てきましたが、それらのどれも私の特定の問題について私に話すことができなかったので、誰かが私を啓発してくれることを願っています. :)

問題 1. 以下のコードはある程度機能しますが、最初の結果値のみを使用して列全体のセルの色を定義しており、列の各行を個別に定義していません。

問題 2. 1 つの結果セットで機能していたとしても、コード スニペットを 8 回コピーして貼り付けずに、ページ上の他のすべての必要な結果セットで機能するように実装する方法がわかりません。 $cellcolor.

関連する場合、影響を受ける行は...

  • $row_recordset1['check1']
  • $row_recordset1['check2']
  • $row_recordset1['check3']
  • $row_recordset2['rating']
  • $row_recordset3['check1']
  • $row_recordset3['check2']
  • $row_recordset3['check3']
  • $row_recordset4['評価']

php スニペット...

<?php
$cellcolor=$row_recordset2['rating'];
if (($cellcolor <= 100) && ($cellcolor > 85))
$color = "#C98910";
else if (($cellcolor <= 85) && ($cellcolor > 70))
$color = "#A8A8A8";
else if (($cellcolor <= 70) && ($cellcolor > 65))
$color = "#965A38";
else if ($cellcolor <= 65)
$color = "#000000";
?>

使用法スニペット...

<table border="1">
<tr><td class="table_data">rating</td></tr>
<?php do { ?>
<tr class="profile" align="center">
<td class="rating" bgcolor=<?php echo $color; ?>><a href="rating.php?TargetEvent=<?php echo $row_recordset2['code1']; ?>"><?php echo $row_recordset2['rating']; ?>
</tr>
<?php } while ($row_recordset2 = mysql_fetch_assoc($recordset2)); ?>
</table>
4

2 に答える 2

0

すべてのセルに異なる色を持たせたい場合は、ループ内に色を設定するロジックを含める必要があります。複数のループがあり、これを複数回行う必要がある場合は、色のロジックを関数に入れてループ内から呼び出すことをお勧めします。

関数をどこかに定義します。

<?php
    function get_color($cellcolor)
    {
        $color = "#ffffff";
        if (($cellcolor <= 100) && ($cellcolor > 85)) {
            $color = "#C98910";
        } else if (($cellcolor <= 85) && ($cellcolor > 70)) {
            $color = "#A8A8A8";
        } else if (($cellcolor <= 70) && ($cellcolor > 65)) {
            $color = "#965A38";
        } else if ($cellcolor <= 65) {
            $color = "#000000";
        }
        return $color
    }
?>

色を取得するための呼び出しで更新されたスニペット:

<?php do { ?>
<tr class="profile" align="center">
<td class="rating" bgcolor=<?php echo get_color($row_recordset2['rating']); ?>><a href="rating.php?TargetEvent=<?php echo $row_recordset2['code1']; ?>"><?php echo $row_recordset2['rating']; ?>
</tr>
<?php } while ($row_recordset2 = mysql_fetch_assoc($recordset2)); ?>

これは、正確な構造/フレームワークを知らなくても実行できる簡単な例です。うまくいけば、正しい方向に向けられます...

于 2013-06-04T15:38:21.730 に答える
0

php スニペット...

<?php
$cellcolor=$row_recordset2['rating'];
if (($cellcolor <= 100) && ($cellcolor > 85))
$color = "Orange";
else if (($cellcolor <= 85) && ($cellcolor > 70))
$color = "Grey";
else if (($cellcolor <= 70) && ($cellcolor > 65))
$color = "Brown";
else if ($cellcolor <= 65)
$color = "Black";
?>

使用法スニペット...

<table border="1">
<tr><td class="table_data">rating</td></tr>
<?php do { ?>
<tr class="profile" align="center">
<td class="rating<?php echo $color; ?>" ><a href="rating.php?TargetEvent=<?php echo $row_recordset2['code1']; ?>"><?php echo $row_recordset2['rating']; ?>
</tr>
<?php } while ($row_recordset2 = mysql_fetch_assoc($recordset2)); ?>
</table>

cssファイル...

.ratingOrange {
   background-color: #C98910;
}

.ratingGrey{
   background-color: #A8A8A8;
 }

.ratingBrown{
   background-color: #965A38;
}

.ratingBlack{
   background-color: #000000;
   color: #ffffff;
}
于 2013-06-04T15:48:53.417 に答える