用于具有动态行和列的html表的PHP,其中行数据依赖于列标题

时间:2017-10-16 20:45:05

标签: php html mysql

我创建了一个评估系统,对每节课的每个学生进行评分。我有一个表格,创建一个包含以下标题的表格:

  • 学生姓名
  • Pupil ID
  • 课程标题
  • 课程ID
  • 课程成绩

要查看数据,我正在尝试创建一个有点像电子表格的表格 每行取瞳孔ID并在数据库中搜索等级,即

SELECT * FROM table WHERE pupilid = "rowid" AND lessonid = "columnheading"

我可以使用PHP with while循环创建列标题和行标题,但我无法弄清楚如何在列标题和学生ID之间建立每个单元格链接。

我设法创建它的唯一方法是使用浮动div 它有效,但风格很难,名称和等级在不同的网格中,所以很难排序 我真的很感激任何帮助/链接方式来做到这一点 每周都可以添加新学生,每个课程列都会添加到电子表格中。

该表应该如下所示:

+-------+----+----+--- +
| Pupil | L1 | L2 | L3 |
+-------+----+----+----+
| John  | B  | C+ | D  |
+-------+----+----+----+
| Sarah | B  | A  | F  |
+-------+----+----+----+
|  Jim  | D  | A  | B  |
+-------+----+----+----+

我可以使用下面的代码创建列/行标题。我非常感谢帮助获得成绩的代码。

<table>
<tr>
    <th>Pupil name</th>
    <?php
        $selectlesson=$connect->query("SELECT DISTINCT lessonid FROM `grades` ");
  while($rowslesson=$selectlesson->fetch_array())
    {
    ?>
    <th><?php echo $rowslesson['lessonid']; ?></th>
    <?php
    }
    ?>

</tr>
<?php
        $selectpupil=$connect->query("SELECT DISTINCT pupilid FROM `grades` ");
  while($rowspupil=$selectpupil->fetch_array())
    {
    ?>
    <tr>
    <td><?php echo $rowspupil['pupilid']; ?></td>
    </tr>
    <?php
    }
    ?>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

实际上我想出了怎么做。我在TD中重复了SQL搜索,它似乎正常工作

<table>
<tr>
    <th>Pupil name</th>
    <?php
        $selectlesson=$connect->query("SELECT DISTINCT lessonid FROM `grades` ");
  while($rowslesson=$selectlesson->fetch_array())
    {
    ?>
    <th><?php echo $rowslesson['lessonid']; ?></th>
    <?php
    }
    ?>

</tr>
<?php
        $selectpupil=$connect->query("SELECT DISTINCT pupilid FROM `grades` ");
  while($rowspupil=$selectpupil->fetch_array())
    {
    ?>
    <tr>
        <td><?php $pupil= $rowspupil['pupilid'];
            echo $rowspupil['pupilid']; ?>
        </td>
        <?php
        $selectlesson=$connect->query("SELECT DISTINCT lessonid FROM `grades` ");
            while($rowslesson=$selectlesson->fetch_array())
                {
                ?>
        <td><?php $lessongrade = $rowslesson['lessonid']; 

            $selectgrade=$connect->query("SELECT * FROM `grades` where lessonid ='$lessongrade' and pupilid = '$pupil' LIMIT 1 ");
            while($rowsgrade=$selectgrade->fetch_array())
            {
            echo    $rowsgrade ['grade'];
            }?>
        </td>
        <?php
        }
        ?>
    </tr>
    <?php
    }
    ?>



</tr>