使用CSS从数据库查询设置数据样式某些表行

时间:2013-09-03 19:49:29

标签: php css mysql html-table

我在MySQL数据库中有一组数据。我有一个使用PHP循环从这些数据创建的表。我想以某种方式设置某些行的样式。例如,从数据库获取的数据分为2行,3行,4行,5行。有大约25行数据,我想为每个组设置不同的样式,例如,为行子标题添加颜色......

我建立了这个并没有完全考虑到这种造型是必要的。客户想要这个样式,现在我正试图弄清楚如何制作它。

以下是来自Excel的图片,其中包含我想要完成的事情:

enter image description here

我可以手工编写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>

3 个答案:

答案 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">';
}