我正在尝试输入所有得分
$carry_over = array();
while ($row8 = mysql_fetch_assoc($query8)) {
if ($row8['score'] < 40) {
$carry_over[] = array('m.course_code' =>$row8['course_code']);
}
}
print_r($carry_over);
$query8 = mysql_query("SELECT m.score , m.course_code 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."'
AND m.score < 40"
) or die (mysql_error());
答案 0 :(得分:2)
您的 $ query8 变量(数据库查询)应该在<{strong> {/ 1}}函数之前定义。现在,while()
函数迭代超过0行,当然,这会产生一个空数组。
while()
由于您已在$carry_over = array();
while ($row8 = mysql_fetch_array($query8))
{
$carry_over[] = $row8['course_code'];
}
查询中检查得分小于40的行,因此SELECT
函数内的检查是多余的。您还错过了 course_code 前面的单引号(以前是一个点),最后;如果只是将值直接添加到第一个数组,则无需在 $ carry_over 数组中添加数组。
第二次更新
while()
答案 1 :(得分:1)
数组循环应该是 如果($ row8 ['得分']&lt; 40) $ carry_over [] = $ row8 ['course_code'];
答案 2 :(得分:0)
我认为您可能必须首先调试$row8
数组。看看里面是什么,或者它根本没有任何东西