PHP注意:未定义偏移381和382 with while循环

时间:2016-05-26 10:39:44

标签: php mysql

此代码显示错误,如PHP注意:未定义的偏移量381。 并且当循环运行时,偏移数量会增加。

$marks=0;
$correct = 0;
while ($row=mysqli_fetch_assoc($result)){
    $exam_name = $row['exam_name'];
    $exam_percentage = $row['exam_pass_percentage'];
    if($row['a_sortorder'] == $json['responses'][0][1][$row['qid']]){
        $marks = $marks + 4;
        $correct++;
    }
}

不知道该怎么办?

2 个答案:

答案 0 :(得分:1)

将您的代码更改为:

$marks=0;
$correct = 0;
while ($row=mysqli_fetch_assoc($result)){
    $exam_name = $row['exam_name'];
    $exam_percentage = $row['exam_pass_percentage'];
    if(isset($row['a_sortorder']) && isset($json['responses'][0][1][$row['qid']]) && $row['a_sortorder'] == $json['responses'][0][1][$row['qid']]){
        $marks = $marks + 4;
        $correct++;
    }
}

答案 1 :(得分:-1)

感谢您的帮助。我已经解决了。问题在于$ row [' qid']和[1]。 $ row [' qid']是一个整数,但我使用$ row的关键[' qid']是一个varchar类型的键,如q381,我只使用了381.所以我改变了$ row [' qid'] q。$ row [' qid']并且有效。 另一个问题是1,这个键也在改变,所以我用相应的变量替换它并且它正常工作