我需要你帮助我的脚本。我正在生成一个新专栏,根据分数将特定分数授予等级。 此查询用于从主表中获取分数。
$query8 =mysql_query("SELECT m.score
FROM maintable AS m
INNER JOIN students AS s ON
m.matric_no = s.matric_no
INNER JOIN courses AS c ON
m.course_code = c.course_code
WHERE m.matric_no = '".$matric_no."'
AND m.level = '".$level."'")
or die (mysql_error());
$number_cols1 = mysql_num_fields ($query8);
我能够相应地生成成绩,并且在HTML表格中添加了一个新列,但是我在将标题添加到添加的新列时遇到了问题,即“成绩”。 另外我注意到,当我更新分数并重新运行结果页面时,成绩实施确实生效,即如果前评分为“80”且成绩为“A”,并且我将评分降级为“33”对于“F”,脚本仍然输出“A”,而得分已经改变。
2)我也试图将所有等级为“F”的课程复制到一个单独的表格中。因此,学生将知道他/她将要重新学习的课程。但我的阵列实现并没有实现这一点。
谢谢你的帮助。
while ($row8 = mysql_fetch_ assoc($query8)) {
if ($row8['score'] >= 70) {
$grade = 'A';
}
elseif ($row8['score'] >= 60) {
$grade = 'B';
}elseif ($row8['score'] >= 50) {
$grade = 'C';
}elseif ($row8['score'] >= 45) {
$grade = 'D';
}elseif($row8['score'] >= 40) {
$grade = 'E';
}else{
$grade = 'F';
} }
echo "<table border = \"2\" cellspacing = \"1\" cellpadding = \"2\" bgcolor = MediumPurple class =\"cambria\" >\n";
echo "<tr align= \"center\">\n";
echo "<th>"; //this echo out
echo"s/n"; //the serial number
echo "</th>\n"; //heading for the table
for ($i=0; $i<$number_cols; $i++) {
echo "<th>" . mysql_field_name ($query7, $i). "</th>\n";
}$serial = 0;
while ($row = mysql_fetch_row ($query7)) {
$serial++;
echo "<tr align=center>\n";
echo"<td>";
echo $serial;
echo"</td>\n";
foreach ($row as $value)
{
echo "<td>$value</td>\n";
}
echo "<td>";
echo $grade ;
echo "</td>\n";
}
for ($i=0; $i<$number_cols; $i++) {
echo "</tr>\n";
echo "</table>";
答案 0 :(得分:1)
请清理那段代码,这是一个丑陋的丑陋混乱,几乎无法通读。
话虽这么说,问题是你在获取个人成绩之前设定了字母等级。您似乎使用query7
来获取成绩,但在查询甚至运行之前确定得分,因此您为query7提取的每个成绩输出相同的字母得分。
查看HEREDOC,它们将有助于消除“倾斜牙签综合征”的不良情况 - 输出html的重复回声对于可维护性和易读性而言非常糟糕。