如何为从SQL生成的表中添加的每一行生成不同的颜色线?

时间:2013-09-24 18:36:26

标签: php html sql whmcs

由于代码生成的每一行都是相同的颜色,我该如何制作它以便每隔一行添加一个稍暗的阴影?

即: 白色 米色 白色 米色 白色 米色

这样它就变得更易读了。

以下代码:

if(mysql_num_rows($result) > 0){
    while($row = mysql_fetch_array($result)){
        $invoiceitemssql = mysql_query('SELECT * FROM tblinvoiceitems WHERE invoiceid = '.$row['id'].' LIMIT 0,1');
        $invoiceitems = mysql_fetch_array($invoiceitemssql);
        $html .= '<tr>
            <td><a href="invoices.php?action=edit&id='.$row['id'].'">'.$row['id'].'</a></td>
            <td>'.$row['firstname'].'</td>
            <td>'.$row['lastname'].'</td>
            <td>'.$row['companyname'].'</td>
            <td>'.$row['city'].'</td>
            <td>'.$row['phonenumber'].'</td>
            <td>'.$row['date'].'</td>
            <td>'.$row['duedate'].'</td>
            <td>'.$row['total'].'</td>
            <td>'.$invoiceitems['description'].'</td>
        </tr>';
    }
}

5 个答案:

答案 0 :(得分:1)

喜欢这样

$i = 0;

if(mysql_num_rows($result) > 0){
    while($row = mysql_fetch_array($result)){

    if ($i % 2 == 0) {
        color white
    } else {
        color beige
    }

    $i++;
    }
}

答案 1 :(得分:0)

你可以使用css

tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}

答案 2 :(得分:0)

使用计数器切换背景颜色:

$i=0;
while($row = mysql_fetch_array($result)){
     if($i%2 == 0)
         $bgcolor='beige'; // change the color code as needed
     else 
         $bgcolor='white';
     $i++;
     ......
     $html .= '<tr style="background:#'.$bcolor.'">

答案 3 :(得分:0)

你可以使用CSS nth-child selector来实现这个目的,这样你就不用乱做php循环来添加颜色了。

HTML

<table>
  <tr>
   <td></td><td></td>
  </tr>
  <tr>
   <td></td><td></td>
  </tr>
  <tr>
   <td></td><td></td>
  </tr>
</table>

CSS

table tr:nth-child(odd) {
  background:#F00;
}
table tr:nth-child(even) {
  background:#FF0;
}

<强> JSFiddle Demo

答案 4 :(得分:0)

您可以使用CSS来设置每个不同行的样式..

例如:

tr:nth-child(odd)
{
   background:#fff;
}
tr:nth-child(even)
{
   background:#ddd;
}