php - 创建动态列名称时需要帮助

时间:2014-04-12 07:45:09

标签: php html

我已经使用PHP成功连接了PostgreSQL数据库。我可以在其中运行查询。

现在我想要填充一周的数据。

我在根据传递的周数使表头动态化方面遇到了一些挑战。

对于当月,我们在第2周。所以我在数组中有两个元素,Week 1Week 2

但表格标题是手动定义的最大Week 5,我想让它动态显示通过的周数,即2。

以下是代码。

$week_num = ceil(date('d') / 7);

for ( $i = 1; $i < $week_num + 1; $i++ ) {
        $week_table_header[] = 'Week '. $i;
    }

这给了我这个结果。

Array ( [0] => Week 1 [1] => Week 2 )

我使用php创建了这个表头。

echo "<table>
        <thead>
            <tr>
                <th></th>
                <th>Week 1</th>
                <th>Week 2</th>
                <th>Week 3</th>
                <th>Week 4</th>
                <th>Week 5</th>
            </tr>
        </thead>";

我需要在表格中仅获取Week 1Week 2

我尝试过使用forEach。

   foreach ($week_table_header as $table_header) {
        # code...
        $str =  "<th>". $table_header ."</th>";

    }

与表格的回声连接起来。我只得到Week 2数组中的最后一个元素。

整个表格都填充了这个查询。

while ( $row_week = pg_fetch_assoc($week_query)) {
    echo "<tr>";
    echo "<td></td>";
    echo "<td>" . $row_week['Week 1'] . "</td>";
    echo "<td>" . $row_week['Week 2'] . "</td>";
    // echo "<td>" . $row_week['Week 3'] . "</td>";
    // echo "<td>" . $row_week['Week 4'] . "</td>";
    // echo "<td>" . $row_week['Week 5'] . "</td>";
    echo "</tr>";
}

echo "</table>";

即使在这里,我也需要让列名称变为动态。

有人帮助我如何实现这一目标?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在每个循环中

 $str="";
foreach ($week_table_header as $table_header) {
    # code...
    $str=  $str."<th>". $table_header ."</th>";

}

和你的while循环

echo "<tr>";
while ( $row_week = pg_fetch_assoc($week_query)) {
//your code
}
echo "</tr>";

答案 1 :(得分:-1)

如果您只需要前两周,则可以进行固定次数的迭代

for ( $i = 0; $i < 2; $i++ ) {
    $week_table_header[] = 'Week '. ($i + 1);
}

如果您希望$i从1集$i = 1; $i < 3; $i++开始,那么