将值检索到数组中

时间:2012-03-17 04:37:19

标签: php mysql arrays loops

我正在尝试输入所有得分print_r($carry_over)不返回任何内容!

$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());

3 个答案:

答案 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数组。看看里面是什么,或者它根本没有任何东西