Как я могу создать разные цветовые линии для каждой строки, добавленной в таблицу, созданную из SQL?

Поскольку код генерирует каждую строку одного и того же цвета, как я могу сделать так, чтобы он добавлял немного более темный оттенок каждой второй строке?

то есть: белый бежевый белый бежевый белый бежевый

Так что это становится более читаемым форматом.

Код ниже:

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>';
    }
}

person Gabe Madden    schedule 24.09.2013    source источник


Ответы (5)


Вот так

$i = 0;

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

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

    $i++;
    }
}
person Wikunia    schedule 24.09.2013
comment
Разобраться несложно, кодер я не очень, спасибо за помощь. - person Gabe Madden; 24.09.2013

Вы можете использовать css

tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}
person Jacob Goulden    schedule 24.09.2013

Используйте счетчик для переключения цвета фона:

$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.'">
person aynber    schedule 24.09.2013

Вы можете использовать CSS для стилизации каждой отдельной строки.

Например:

tr:nth-child(odd)
{
   background:#fff;
}
tr:nth-child(even)
{
   background:#ddd;
}
person Ramin Firooz    schedule 24.09.2013

вы можете использовать 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

person Patrick Evans    schedule 24.09.2013