表tr背景颜色变化

时间:2011-07-15 17:57:04

标签: php css mysql html-table

我正在尝试排序奇怪的<tr>甚至<tr>都有不同的颜色,以便于阅读。

这是我的代码:

$show_res = mysql_query($show_query);
while ($show_row = mysql_fetch_assoc($show_res)){
$rc++;
if (($rc > 1)){
    $tr = '#cccccc';
} else {
    $tr = '#ffffff';
}?>
  <tr style="background-color:<?php echo $tr ;?>">

它不起作用,我错过了什么吗?

6 个答案:

答案 0 :(得分:3)

您想使用modulo%

一些例子:

  • 5%2 =余数为1
  • 4%2 =余数为0
  • 6%2 =余数为0
  • 9%2 =余数为1

因此,根据余数是1还是0,您可以更改颜色。并且你希望<tr>元素成为循环的一部分,因为它不断地从一种颜色或另一种颜色来回变换。

$show_res = mysql_query($show_query);
while ($show_row = mysql_fetch_assoc($show_res))
{
    $rc++;
    if ($rc % 2 == 1)
    {
        $tr = '#cccccc';
    } 
    else 
    {
        $tr = '#ffffff';    
?>
  <tr style="background-color:<?php echo $tr ;?>">
<?
    }
}
?>

答案 1 :(得分:1)

$show_res = mysql_query($show_query);
while ($show_row = mysql_fetch_assoc($show_res)){
$rc++;
if (($rc > 1)){
    $tr = 'odd';
} else {
    $tr = 'even';
}?>
  <tr class="<?php echo $tr ;?>">

CSS

.odd td { background-color: #FFF; }
.even td { backgorund-color: #F6F6F6; }

使用CSS并将颜色背景设置为TD而不是TR元素。

答案 2 :(得分:1)

由于这是严格显示,我建议使用Javascript,而不是PHP。

看看它有多简单: http://paragasu.wordpress.com/2009/01/05/alternate-table-row-color-the-easy-way/

答案 3 :(得分:0)

您是否在任何地方定义了$rc=0;

答案 4 :(得分:0)

您遇到的问题似乎是您在增加$ rc ++之后没有重置它。尝试将其设置为0,然后在将其增加到1后重置它。

答案 5 :(得分:0)

$show_res = mysql_query($show_query);
while ($show_row = mysql_fetch_assoc($show_res))
{
       if ( isset($k) and $k==1)
       {
             echo '<tr class="EvenTableRows">';
             $k=0;
        } else {
             echo  '<tr class="OddTableRows">'; 
             $k=1;
        }

      ..... more statement

}