1

我在 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>
4

3 回答 3

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 元素,为第一个、第二个、第三个......:

 .subheading:nth-child(1){background-color:blue;}
 .subheading:nth-child(2){background-color:orange;}
 .subheading:nth-child(3){background-color:gray;}
于 2013-09-03T20:05:58.500 回答
0

对于每组不同的行,您可以添加一个类来为您的 php.ini 中的每一行添加样式。然后根据每个类在你的css样式中。

例如,给你的标题行一个类,blueHeading然后在你的 CSS 中将background-color属性设置为蓝色。

这基本上就是 html 类属性的用途。

于 2013-09-03T19:53:55.630 回答
0

只需检查循环中子标题的名称并为 td 的背景着色

if($subheading == 'foo') {
    echo '<td class="foo">';
}
于 2013-09-03T19:54:53.503 回答