Как задать чередующиеся строки таблицы разными цветами фона с помощью PHP

У меня есть таблица данных, которая генерируется динамически на основе содержимого, хранящегося в базе данных mysql.

Вот как выглядит мой код:

<table border="1"> <tr> <th>Name</th> <th>Description</th> <th>URL</th> </tr> <?php $query = mysql_query("SELECT * FROM categories"); while ($row = mysql_fetch_assoc($query)) { $catName = $row['name']; $catDes = $row['description']; $catUrl = $row['url']; echo "<tr class=''>"; echo "<td>$catName</td>"; echo "<td>$catDes</td>"; echo "<td>$catUrl</td>"; echo "</tr>"; } ?> </table> 

Теперь, если таблица была статичной, я бы просто назначил каждую чередующуюся строку таблицы одним из двух стилей в повторном порядке:

 .whiteBackground { background-color: #fff; } .grayBackground { background-color: #ccc; } 

и это было бы концом этого. Однако, поскольку строки таблицы динамически генерируются, как я могу это достичь?

Solutions Collecting From Web of "Как задать чередующиеся строки таблицы разными цветами фона с помощью PHP"

 <?php $x++; $class = ($x%2 == 0)? 'whiteBackground': 'graybackground'; echo "<tr class='$class'>"; ?> 

Он в основном проверяет, равномерно ли делится $ x на 2. Если это так, оно равномерное.

PS, если вы не видели этот стиль запроса if else, он называется тернарным оператором.

Или вы можете просто использовать CSS:

table tr:nth-child(odd) { background-color: #ccc; }

Установите переменную в значение true / false или число, а затем назад во время каждой итерации. Или используйте оператор модуля, такой как $ i% 2 == 0 в цикле while, где $ i – число, и используйте это условие в тройном выражении или что-то, что устанавливает значение класса <tr>

Самый простой способ чередовать цвета строк в PHP / HTML?

 $i = 0; while ( $row = mysql_fetch_assoc($result) ) { echo '<tr class="' . ( ( $i %2 == 0 ) ? 'oneValue' : 'anotherValue' ) . '"><td>' . $row['something'] . '</td></tr>'; $i++; } 
 <? $color="1"; while ($line = mysql_fetch_array($result)) { if($color==1){ echo '<tr bgcolor="">'; $color="2"; } else { echo '<tr bgcolor="#dcdcdc">'; $color="1"; } ?><td align="left" width="40"><a href=""></a><?= $line[name] ?></td> <? } ?> 

Это мой рабочий код!

Вот моя рабочая часть! `

  $i=1; while($row = mysqli_fetch_array($result)) { if($i%2==0) { echo '<tr bgcolor="#FFFF00">'; } else { echo '<tr bgcolor="#99FFCC">'; } $i++; echo "<td>" . $row['blah'] . "</td>"; echo "<td>" . $row['blah_blah'] . "</td>"; echo "</tr>"; } echo "</table>"; 

`

Вот как я это сделал. Я объявил класс css, названный «ровным», со всем желаемым стилем. Затем зациклился на сценарии. Надеюсь, поможет!

 <?php include 'connect.php'; echo "<table id='hor-zebra'>"; $i = 0; while($row = mysql_fetch_array($result)) { if($i%2 == 0) { echo "<tr class='even'>"; echo "<td>" . $row['something'] ." ". $row['something'] . "</td>"; echo "</tr>"; } else { echo "<tr>"; echo "<td>" . $row['something'] ." ". $row['something'] . "</td>"; echo "</tr>"; } $i++; } echo "</table>"; mysql_close($con); ?>