我是一名老师,我有一个名为“gabber”的 mysql 表,其中包含许多学生测验。这些字段是“锻炼”、“实名”、“分数”、“开始时间”和“结束时间”。如果学生完成了不止一种类型的测验,那么这将在表格中显示为另一行,但当然具有不同的练习值。
我下面的代码几乎可以工作,首先找到唯一的练习值,并使用这些值来打印表格列标题。这些独特的练习值也用于创建第二个查询,该查询为每个学生在每个测验中的尝试找到最低(即第一次尝试)分数。
无论如何,除了打印每个值两次之外,php 代码都可以工作。即名称被打印两次,每个分数也是如此。我知道我的查询肯定是正确的(在 phpmyadmin 中测试),但我认为嵌套 for 循环中出现了问题。我曾尝试阅读查询返回的 PDOstatement,但我无法理解。我很欣赏 stackoverflower 上还有其他关于“打印两次”的帖子,但他们无法帮助我解决这个问题。
关于如何完成这项工作的任何建议都会非常好。谢谢,马特。
<?
$dbh = new PDO("mysql:host=XXX;dbname=gabber", user, pass);
$query2 = "SELECT realname";
echo '<style>table{border-collapse:collapse;}';
echo 'table, td, th{border:1px solid black;}</style>';
echo '<table><tr><td></td>';
foreach($dbh->query('SELECT DISTINCT Exercise FROM a2_physics') as $row) {
echo '<td>';
echo $row[0];
echo '</td>';
$query2.=', MIN( IF( Exercise = "';
$query2.=$row[0];
$query2.='", Score, NULL ) ) AS "';
$query2.=$row[0];
$query2.='"';
}
echo '</tr>';
$query2=$query2.' FROM a2_physics';
$query2=$query2.' GROUP BY realname';
//echo $query2;
foreach($dbh->query($query2) as $row) {
echo '<tr>';
foreach($row as $element)
{
echo '<td>';
echo $element;
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
?>