Php 请注意未定义的偏移线23

Php 请注意未定义的偏移线23,php,Php,我的php文件中有一个问题。由于该通知,Eclipse无法读取它并将其存储到我的sqlite数据库中。请帮我一点忙。先谢谢你。这是我的密码 <?php include("config.php"); $x = $_GET["quiz"]; $query1 = "SELECT id, quiz, question FROM mdl_quiz_question_instances WHERE quiz = $x"; $result1 = mysql_query($query1); $obj

我的php文件中有一个问题。由于该通知,Eclipse无法读取它并将其存储到我的sqlite数据库中。请帮我一点忙。先谢谢你。这是我的密码

<?php

include("config.php");
$x =  $_GET["quiz"];
$query1 = "SELECT id, quiz, question FROM mdl_quiz_question_instances WHERE quiz = $x";
$result1 = mysql_query($query1);
$obj = array();
$ques = array();
$i = 0;
while($row=mysql_fetch_assoc($result1)){
    $obj[$i]['id'] = $row["id"];
    $obj[$i]['quiz'] = $row["quiz"]; 
    $obj[$i]['question'] = $row["question"];
    $ques[$i] = $obj[$i]['question'];
    $i++; 
}

$query2 = "SELECT id, category, questiontext, qtype FROM mdl_question";
$result2 = mysql_query($query2);
$obj2 = array();
$j = 0;
while($row=mysql_fetch_assoc($result2)){
    if($ques[$j] == $row["id"]){
    $obj2[$j]['id'] = $row["id"];
    $obj2[$j]['category'] = $row["category"];
    $obj2[$j]['questiontext'] = $row["questiontext"];
    $obj2[$j]['qtype'] = $row["qtype"];
    $j++;
    }
}

echo json_encode($obj2);
mysql_close();  


?>

更改

if ($ques[$j] == $row["id"]) {
}

第一个查询很可能只返回小于或等于第二个查询返回的结果数的结果数。由于第一个查询填充了
$ques
数组,因此在循环第二个查询的结果时,如果不检查所查找的密钥是否存在,则无法访问该数组


同样基于猜测,此代码不会以您期望的方式匹配来自两个不同查询的值。

谢谢您的快速响应。它修正了输出,谢谢!但是关于这两个不同的查询,我只需要第二个查询的结果。但是它必须由第一个查询中的问题id来确定。@user3022926我看到的一个问题是,您试图根据从数据库中检索它们的顺序来匹配它们,不是基于ID。我建议使用
JOIN
将所有内容合并到一个语句中,或者根据
ID
$ques
数组键。
if (isset($ques[$j]) && $ques[$j] == $row["id"]) {
}