Ваша переменная $ query8 (запрос к базе данных) должна быть определена перед функцией while()
. Прямо сейчас, функция while()
выполняет итерацию по 0 строкам, что, конечно, приводит к пустому массиву.
$carry_over = array();
while ($row8 = mysql_fetch_array($query8))
{
$carry_over[] = $row8['course_code'];
}
Поскольку в запросе SELECT
вы уже проверяете строки, в которых оценка меньше 40, проверка внутри функции while()
является избыточной. Вы также пропустили одиночную кавычку перед course_code (раньше это была точка) и, наконец,; добавление массива в массив $ carry_over не требуется, если вы можете просто добавить значение непосредственно в первый массив.
2-е ОБНОВЛЕНИЕ
$matric_no = MAKE_SURE_TO_DEFINE_THIS;
$level = MAKE_SURE_TO_DEFINE_THIS;
// Fetch rows
$query8 = mysql_query("SELECT maintable.score, maintable.course_code, maintable.matric_no, maintable.level, students.matric_no, courses.course_code FROM maintable, students, courses WHERE (maintable.matric_no = '" . $matric_no . "' AND maintable.matric_no = students.matric_no) AND (maintable.course_code = courses.course_code) AND (maintable.level = '" . $level . "')");
$carry_over = array();
while ($row8 = mysql_fetch_array($query8))
{
// Save data to array
$carry_over[] = $row8['course_code'];
}
echo 'We found ' . mysql_num_rows($query8) . ' rows';
print_r($carry_over); // DEBUG