2

我正在做一个测验,我必须表格:问题和答案。

http://pastebin.com/6UWF8RCy

我的 sql 查询有问题

现在我得到一个 JSONObject,其中包含每个答案的问题,我怎样才能为每个问题获得一个对象,其中包含与该问题相关的所有答案?因此,当我阅读 json-data 时,我可以获取包含第一个答案的第一个对象以及与该问题相关的答案。

编辑:php 代码,整个 JSON 部分无关紧要,因为如果我得到正确的数组,那么 JSON 也将是正确的。

$query = "
        SELECT * FROM Questions
        LEFT JOIN Answers ON Questions.questionID=Answers.questionID
        UNION
        SELECT * FROM Questions
        RIGHT JOIN Answers ON Questions.questionID=Answers.questionID
        LIMIT 10";

$result = mysql_query($query);

$array = array();

while ($row = mysql_fetch_assoc($result)) {
        $array[] = $row;

}



$json = json_encode($array);
echo $json;
4

1 回答 1

0

我不确定查询是否给出了正确的结果

你可以用

$query = "SELECT * FROM Questions
            LEFT JOIN Answers ON Questions.questionID=Answers.questionID ";  

而不是联合,但是根据您的查询,这应该可以满足您的期望..

$query = "
        SELECT * FROM Questions
        LEFT JOIN Answers ON Questions.questionID=Answers.questionID
        UNION
        SELECT * FROM Questions
        RIGHT JOIN Answers ON Questions.questionID=Answers.questionID
        LIMIT 10";

$result = mysql_query($query);

$array = array();

while ($row = mysql_fetch_assoc($result)) {
        $array[$row['questionID']]['answers'][$row['answerID']] = $row['answer'];
        $array[$row['questionID']]['questionID'] = $row['questionID'];
        $array[$row['questionID']]['question'] = $row['question'];
        $array[$row['questionID']]['category'] = $row['category'];
        $array[$row['questionID']]['correct'] = $row['correct'];
}

$json = json_encode($array);
echo $json;
于 2012-04-12T17:10:35.573 回答