使用数组创建PHP表

时间:2011-02-21 16:45:56

标签: php dynamic-arrays

我有一个表格,第一列叫做“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名学生,我可以将它们显示在表格列中,但不会显示在列中的行中。

如何以这种方式遍历动态列?

如果我上面的演示令人困惑,我不会怪你!

1 个答案:

答案 0 :(得分:0)

好吧,我假设您的数据库结构如下:

[tbl_students]
studentid, studentname

[tbl_fruit]
fruitid, fruitname

[tbl_students_fruit]
id, fruitid, studentid, consumed

http://pastebin.com/CxPUeXR0

我没有测试过,祝你好运