我有一个表,第一列名为:“Fruit”,最后一列名为:“Total”
中间的任何列都是由学生数量动态创建的。以下是我希望动态制作的内容,来自数据库到目前为止显示的内容。
<table border="1">
<tr>
<th>Fruit</th>
<th>Sally</th>
<th>John</th>
<th>Total</th>
</tr>
<tr>
<td>apples</td>
<td>5</td>
<td>3</td>
<td>8</td>
</tr>
<tr>
<td>bananas</td>
<td>3</td>
<td>5</td>
<td>8</td>
</tr>
<tr>
<td>Oranges</td>
<td>3</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td></td>
<td>11</td>
<td>11</td>
<td>22</td>
</tr>
</table>
这是我遇到的困难。从数据库中提取水果名称、学生和食用的水果。而且我不知道会有多少水果行或学生列。
据我所知:
<table>
<tr>
<th>Fruit</th>
<?php $sqlS = db("SELECT s.*, sf.consumed FROM `tbl_students` s, `tbl_students_fruit` sf WHERE s.studentid = f.studentid ORDER BY s.studentname ASC");
while($student = mysql_fetch_array($sqlS)){ ?>
<th><?php echo $student['studentname'];?></th>
<?php } ?>
<th>Total</th>
</tr>
<?php $sqlF = db("SELECT * FROM `tbl_fruit` ORDER BY fruitname ASC");
while($fruit = mysql_fetch_array($sqlF)){ ?>
<tr>
<td><?php echo $fruit['fruitname'];?></th>
<td></td>
<td></td>
</tr>
<? } ?>
</table>
如您所见,我正在创建 Fruit 行和 Student 列。但它是不完整的。我只创建了列标题,而不是标题下方的列。从这一点开始,我被困在桌子的内脏上。
我确信数组是解决这个怪物的方法。但是,我虚弱的大脑可以完成这项工作的唯一方法是进行更多查询,我确信这是一种非常错误的方法。
如果有 3 名学生或 15 名学生,我可以让他们出现在第 th 表列中,但不能出现在他们列中的行中。
如何以这种方式遍历动态列?
如果我上面的演示令人困惑,我不怪你!