我在MySQL数据库中有一组数据。我有一个使用PHP循环从这些数据创建的表。我想以某种方式设置某些行的样式。例如,从数据库获取的数据分为2行,3行,4行,5行。有大约25行数据,我想为每个组设置不同的样式,例如,为行子标题添加颜色......
我建立了这个并没有完全考虑到这种造型是必要的。客户想要这个样式,现在我正试图弄清楚如何制作它。
以下是来自Excel的图片,其中包含我想要完成的事情:
我可以手工编写HTML然后设置样式但是在使用PHP循环时代码更清晰,更紧凑。另外,如果我可以解决这个问题,我可以将其用作其他场景的模型和模板,我需要从更多数据中为表格的某些部分设置样式。
以下是PHP代码段:
<table>
<tr>
<th>hd1</th>
<th>hd2</th>
<th>hd3</th>
</tr>
<?php
$mysqli = <connect to db is fine>;
$query = 'SELECT a, b, c from t1';
if($stmt = mysqli_prepare($mysqli, $query)) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $a, $b, $c);
while (mysqli_stmt_fetch($stmt)) {
echo '<tr>';
echo '<td>' . $a . '</td>';
echo '<td>' . $b . '</td>';
echo '<td>' . $c . '</td>';
echo '</tr>';
}
}
?>
</table>
答案 0 :(得分:2)
在这部分代码中,为子标题添加一个类:
$subheadingsContent = array("a", "sub heading", "cell data");
while (mysqli_stmt_fetch($stmt)) {
if(in_array($a, $subheadingsContent)) echo '<tr class="subheading">';
echo '<td>' . $a . '</td>';
echo '<td>' . $b . '</td>';
echo '<td>' . $c . '</td>';
echo '</tr>';
}
在你的css文件foreach元素中添加class,第一个,第二个,第三个....:
.subheading:nth-child(1){background-color:blue;}
.subheading:nth-child(2){background-color:orange;}
.subheading:nth-child(3){background-color:gray;}
答案 1 :(得分:0)
对于每个不同的行组,您可以添加一个类来设置php中每个行的样式。然后按照每个班级的css风格。
例如,为您的标题行添加blueHeading
类,然后在您的css中将background-color
属性设置为蓝色。
这基本上是html类属性的用途。
答案 2 :(得分:0)
只需检查循环中子标题的名称并为td的背景着色
if($subheading == 'foo') {
echo '<td class="foo">';
}