Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于JSON的测验-将SQL结果分发到多维数组中_Php_Arrays_Json_Multidimensional Array_Mysqli - Fatal编程技术网

Php 基于JSON的测验-将SQL结果分发到多维数组中

Php 基于JSON的测验-将SQL结果分发到多维数组中,php,arrays,json,multidimensional-array,mysqli,Php,Arrays,Json,Multidimensional Array,Mysqli,我有一套存储在mysql中的测验系统的问题和答案。我实现的过程旨在将这些问题和答案放入多维数组,然后将其转换为json格式。但结果并不令我满意。我被以下程序卡住了: PHP代码: $query = "SELECT s1.id, s1.question, s2.answers, s2.correct FROM `questions` s1, `answers` s2 WHERE s1.id=s2.questionid AND s1.courseid=".$_

我有一套存储在mysql中的测验系统的问题和答案。我实现的过程旨在将这些问题和答案放入多维数组,然后将其转换为json格式。但结果并不令我满意。我被以下程序卡住了:

PHP代码:

$query = "SELECT s1.id, s1.question, s2.answers, s2.correct
          FROM `questions` s1, `answers` s2
          WHERE s1.id=s2.questionid AND s1.courseid=".$_POST['courseid']."";
$result = mysqli_query($mysqli, $query) or die ("<b>Select failed:</b> ".mysqli_error($mysqli));

$final_quiz = array();
$final_quiz['info']['course'] = $_POST['courseid'];
while ($rows = mysqli_fetch_assoc($result_quiz)) {
    $final_quiz['quiz']['id'] = $rows['id'];
    $final_quiz['quiz']['question'] = $rows['question'];
    $final_quiz['quiz']['answers']['option'] = $rows['answers'];
    $final_quiz['quiz']['answers']['correct'] = $rows['correct'];
}
// convert to JSON
$json = json_encode($final_quiz);
echo $json;
{
    "info":{"course":"Some value here"}
    "quiz":[
        {
            "question":"Question number one here?",
            "answers":[
                {"option":"some incorrect answer", "correct":"0"},
                {"option":"a correct answer", "correct":"1"},
                {"option":"another incorrect answer", "correct":"0"}
            ]
        },
        ...
    ]
}

如何组织多维数组以获得上述json结构?任何帮助都将不胜感激。

使用问题ID作为
测验
数组的键

while ($row = mysqli_fetch_assoc($result_quiz)) {
    $question_id = $row['id'];
    if (!isset($final_quiz['quiz'][$question_id])) {
        $final_quiz['quiz'][$question_id] = 
            array('question' => $row['question'], 'answers' => array());
    }
    $final_quiz['quiz'][$question_id]['answers'][] = 
        array('option' => $row['answers'], 'correct' => $row['correct']);
}

太棒了!!感谢您提示将问题ID用作json中的键:)