我对这个问题有两个部分:
这是我的代码:
$sql = "SELECT * FROM student_unique WHERE grade_level >='10' ORDER BY grade_level, last_name";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$temp = $row['student_number'];
echo "<tr><td>";
echo $row['first_name']." ".$row['last_name'];
echo "</td>";
$sql2 = "SELECT AVG(percent) AS number, COUNT(course_name) AS total FROM students_marks WHERE student_number='$temp'";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
echo "<td>";
// output data of each row
while($row2 = $result2->fetch_assoc()) {
echo $row2['number']. " ". $row2['total'];
}
echo "</td>";
} else {
echo "<td> No Marks </td>";
}
// end of while loop
}
} else {
echo "0 results";
}
$conn->close();
您可以看到打印平均值和学生所使用的课程数量。当我将$ sql2 SELECT更改为:
时$sql2 = "SELECT AVG(percent) AS number, COUNT(course_name) AS total, course_name FROM students_marks WHERE student_number='$temp'";
$result2 = $conn->query($sql2);
查询失败,我得到了#34;没有标记&#34;。
我确信我已经看到一些类似于此的查询,但我不确定为什么在select函数中添加另一列不会导致显示任何行。
第二个问题涉及在SELECT的末尾添加一个修饰符:
如果我向此添加WHERE子句,它也会返回&#34;没有标记&#34;。
$sql2 = "SELECT AVG(percent) AS number, COUNT(course_name) AS total FROM students_marks WHERE student_number='$temp' AND total>'7'";
为什么在添加列名的情况下或者我添加涉及总数的WHERE子句时这不起作用?
如果有人能解释为什么&#34;我会非常感激。在这之后,我已经查看了过去几天对代码背后可能发生的事情的解释。
我将包括我正在使用的表格,它们可能是问题的一部分。
表格:
table: students_marks
id stud_id gr student_# year course term mark per
415 31703 9 3100992316 2500 PHYE9 F1 78 78
416 31703 9 3100992316 2500 FR9 F1 50 50
417 31703 9 3100992316 2500 ENG9 F1 55 55
student_unique
id student_# First Last gr
50 3100992316 Amanda B 9
感谢您的支持