如果函数基于表中的位置,则使用PHP更改表行背景颜色

时间:2013-10-01 11:41:45

标签: php html mysql css

我有一个页面显示团队联赛位置的表格,我试图让第一行有一种颜色,第二行是另一种颜色,而另一种是另一种颜色。这是为了突出获奖者,晋升和降级。我已经附上了代码,你可以看到它已经设置为在前2和前2之后添加一行。请问有人可以帮忙吗?我研究过但我很挣扎:(我用CSS。

    {
     //Lets print data
     $j=1;
     $i=0;
     while($i< $qty)
     {
    if(isset($draw_line))
    {
      //Tarkistetaan, piirretäänkö erotusviiva
      for($k = 0 ; $k < sizeof($draw_line) ; $k++)
      {
        if($draw_line[$k] == $i)
        {
            $templine_width = $tb_width-20;
            echo"<tr>
            <td height=\"2\" colspan=\"20\" align=\"center\" valign=\"middle\"> 
                        <img src=\"images/line.png\" width=\"$templine_width\" height=\"1\" ALT=\"\"><br>
            </td>
            </tr>";
        }
      }
    }
    echo"<tr><td align=\"center\" height=\"25\" cellspacing=\"1\" valign=\"middle\" bgcolor=\"$bg1\">$j</td>
            <td align=\"left\" valign=\"middle\" cellspacing=\"1\" bgcolor=\"$bg1\">&nbsp$team[$i]</td>
        <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'pld')
        echo'<b>';
    echo"$pld[$i]";

    if($sort == 'pld')
       echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'tw')
           echo'<b>';
    echo"$wins[$i]";
    if($sort == 'tw')
           echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'td')
        echo'<b>';
    echo"$draws[$i]";
    if($sort == 'td')
            echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'tl')
            echo'<b>';
    echo"$loses[$i]";
    if($sort == 'tl')
        echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'tf')
        echo'<b>';
    echo"$goals_for[$i]";
    if($sort == 'tf')
        echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";

    if($sort == 'ta')
        echo'<b>';
    echo"$goals_against[$i]";
    if($sort == 'ta')
        echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'GD')
        echo'<b>';
            $GD = $goals_for[$i] - $goals_against[$i];
            echo"$GD";
    if($sort == 'GD')
        echo'</b>';
    echo"</td>
    <td align=\"center\" valign=\"middle\" bgcolor=\"$bg1\">";
    if($sort == 'pts')
        echo'<b>';
    echo"$points[$i]";
    if($sort == 'pts')
        echo'</b>';
    echo"</td>
    </tr>";
    $i++;
    $j++;
    }
     }
}

4 个答案:

答案 0 :(得分:2)

为每个分配颜色,如下例

for(i=0;i=5;i++)
{
  if($i%2==0)
  {
    $col="#E6E6E6";
  }
  else
  {
    $col="#FFCCE6";
   }
?>
  <table>
   <tr bgcolor="$col">
    <td>ABCDEFG</td>
   </table>
<?php
}

使用此相同逻辑,您可以使用不同的样式

答案 1 :(得分:1)

使用三元运算符的更简化答案:

<?php
for(i=0 ; i=5 ; i++) {
  $col = ($i%2==0) ? "#E6E6E6" : "#FFCCE6";
?>
  <table>
   <tr bgcolor="<?php print $col;?>">
    <td>ABCDEFG</td>
   </table>
<?php
}
?>

答案 2 :(得分:0)

您可以使用CSS轻松完成:第n个子选择器。

http://www.w3schools.com/cssref/sel_nth-child.asp

有奇偶选择器:

http://www.w3.org/Style/Examples/007/evenodd

如果你想让nth-child覆盖偶数奇数,那么在规则之后加上!important如下:

What does !important in CSS mean?

编辑:

CSS还有第一个和最后一个子选项:

http://quirksmode.org/css/selectors/firstchild.html

答案 3 :(得分:0)

TRy this one :

$chk_len=sizeof($draw_line);
$chk_len_n=$chk_len-1;
$chk_len_last=$chk_len-2;
for($k = 0 ; $k < sizeof($draw_line) ; $k++)
{
 if($k==0 || $k==1) // for 1st and 2nd row
 {
   $bg="#E6E6E6";
 }
 else if($k==$chk_len_last || $k==$chk_len_n) // for last two row
 {
   $bg="#FFCCE6";
 }
 else
 {$bg="#FFFFFF";}
}