此代码显示错误,如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++;
}
}
不知道该怎么办?
答案 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,这个键也在改变,所以我用相应的变量替换它并且它正常工作