2

SQL で学生の成績記録を作成しています。2列しかありません。

sl no. Name    Points
1      Admam    89
2      Russel   86
3      Andy     79
4      Lance    76
5      Steve    75
6      jack     74
7      Phil     70
8      mark     67
9      kevin    65
10     andrew   65
11     brian    64
12     pat      63

これは SQL レポート形式です。3 人の生徒ごとにテーブルを色分けする必要があります。最初の 3 人の生徒 (1、2、3) は「ダイヤモンド」と呼ばれるため、3 行を灰色にする必要があります。次の 3 人の生徒 (4、5、6) は「プラチナ」と呼ばれ、3 つの行を緑色にする必要があります。

しかし、次の行では、Phi、Mark、Kevin の色を黄色にする必要があります。しかし、アンドリューも同じポイントのためにケビンと一緒に参加します。だから今4行は黄色に色付けする必要があります..その方法を教えてください....

4

2 に答える 2

0

このフィドルphpfiddleを見てください

     <?php
        $points=array(1,1,1,2,2,3,3,3,3);
        $color= array(1=>'red',2=>'green',3=>'yellow');
    ?>

        <table width="100%">
            <?php
        foreach($points as $key=>$grade)
        {?>
        <tr>
        <td style="color:<?php if( $key!=0 &&  $points[$key]!=$points[$key-1] )
        {echo $color[$grade];} else{ if(($key+1)%3==0)
{ echo $color[$grade];} else {echo $color[$grade];} } ?>">
student <?php echo $key;  ?></td>
        </tr>
        <?php }?>
    </table>
于 2012-10-17T03:45:42.987 に答える
0

このように各範囲ポイントに色を使用します

$colors = array(
    1 => 'grey',
    2 => 'green',
    3 => 'yellow',
    4 => 'black'
);
$i = 0;
$color_id = 0;
$lastpoint = -1;
foreach($students as $id=>$student) {
   $color_id += ($i % 3 == 0 && $student['point'] != $lastpoint) ? 1 : 0;
   $lastpoint = $student['point'];
?>
<tr>
    <td style="color:<?php echo colors[$color_id];?>";>
        <?php echo $student['name']; ?>
    </td>
</tr>
<?php
}
于 2012-10-17T03:54:43.113 に答える