Reputation:
I'm trying to enter all the course_code that have a score < 40 into array and echo it out somewhere. The print_r($carry_over)
returns nothing!
$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());
Upvotes: 1
Views: 100
Reputation: 3520
Your $query8 variable (the database query) should be defined before the while()
function. Right now, the while()
function iterates over 0 rows which, of course, results in an empty array.
$carry_over = array();
while ($row8 = mysql_fetch_array($query8))
{
$carry_over[] = $row8['course_code'];
}
Since you already check for rows where the score is less than 40 in your SELECT
query, the check inside the while()
function is redundant. You also missed a single-quote in front of course_code (it was previously a dot), and finally; adding an array inside the $carry_over array is unnecessary when you can just add the value directly to the first array.
2nd UPDATE
$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
Upvotes: 2
Reputation: 4932
I think you might have to debug $row8
array first. to see what is inside or it probably got nothing at all
Upvotes: 0
Reputation: 683
The array loop should be If($row8['score'] < 40) $carry_over[] = $row8['course_code'];
Upvotes: 1