我有以下代码从mysql数据库中提取表并将其转换为html中的表。
$query = mysqli_query($link, "select * from timetable Where id = $id and subject != '' order by Day asc, Hour asc " );
?>
<tr>
<th>day</th>
<th>hour</th>
<th>subject</th>
</tr>
<?php
while ($row = mysqli_fetch_array($query)) {
echo "<tr>";
echo "<td>".$row['Day']."</td>";
echo "<td>".$row['Hour']."</td>";
echo "<td>".$row['Subject']."</td>";
echo "</tr>";
}
?>
我试图这样做,以便将day列转换为沿着表的顶部作为第一行。
以下是表格的示例
day hour subject
0 5 Maths
0 7 Maths
1 0 Maths
1 11 Physics
2 0 Physics
2 9 Maths
3 0 Physics
3 4 Maths
3 6 Physics
3 10 Maths
4 3 Maths
4 8 Physics
5 0 Maths
5 9 Physics
6 1 Maths
6 6 Physics
(请注意,为了解决这个问题,我删除了空值以使表格更小)
这是我希望表格看起来像什么
Day 0 1 2 3 4 5 6
hour
1 physics
2
3
4 maths
5 ect
6
7
8
9
10
11
12
答案 0 :(得分:2)
您可以第一次创建此模板
<tr>
<td>Hours\Days</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
之后
<?php
for($hour = 1;$hour < 13; $hour++){
echo "<tr>";
echo "<td>".$hour."</td>";
for($day = 0; $day < 7; $day++){
while ($row = mysqli_fetch_array($query)) {
if($row['Day'] == $day && $row['Hour'] == hour)
echo "<td>".$row['Subject']."</td>";
else
echo "<td></td>";
}
}
echo "</tr>"
}
?>
也许你可以编写比我更短的代码,但它的方法很简单。