我已经使用PHP成功连接了PostgreSQL数据库。我可以在其中运行查询。
现在我想要填充一周的数据。
我在根据传递的周数使表头动态化方面遇到了一些挑战。
对于当月,我们在第2周。所以我在数组中有两个元素,Week 1
和Week 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 1
和Week 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>";
即使在这里,我也需要让列名称变为动态。
有人帮助我如何实现这一目标?
提前致谢。
答案 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++
开始,那么