Я только начинаю изучать более продвинутый SQL вместе с PHP, и мне очень трудно понять, как запросить мою базу данных для викторины. Я строительство.
В конечном итоге я пытаюсь вернуть объект json со следующей структурой, которая дает мне список вопросов и все возможные ответы в виде многомерного массива:
{
"questions":
[
{
"question": "question text here",
"answers":
[
{ "answer": "answer text here", "points": 10 },
{ "answer": "answer text here", "points": 20 },
{ "answer": "answer text here", "points": 30 },
{ "answer": "answer text here", "points": 40 }
]
},
{
"question": "question text here",
"answers":
[
{ "answer": "answer text here", "points": 10 },
{ "answer": "answer text here", "points": 20 },
{ "answer": "answer text here", "points": 30 },
{ "answer": "answer text here", "points": 40 }
]
}
]
{
... из моих таблиц mySQL следующей структуры:
quiz
id | title
1 | quiz title here
quiz_question
id | quiz_id (FK) | question_text
1 | 1 | question text here
2 | 1 | question text here
quiz_answer
id | quiz_question_id (FK) | answer_text | points
1 | 1 | answer text here | 10
2 | 1 | answer text here | 20
3 | 1 | answer text here | 30
4 | 1 | answer text here | 40
... со следующими внешними ключами:
quiz_question.quiz_id is FK to quiz.id
quiz_answer.quiz_question_id is FK to quiz_question.quiz_id
... с использованием следующего PHP (в его простейшей форме, которая в настоящее время возвращает только мои вопросы):
//query the db
$query = mysql_query("
SELECT quiz_question.question_text
FROM quiz_question
JOIN quiz ON quiz.id = quiz_question.quiz_id
WHERE quiz.id = 1;
");
$numrows = mysql_num_rows($query);
for ($i = 0; $i < $numrows; $i++) {
$row = mysql_fetch_assoc($query);
$quiz_data[$i] = array("question" => $row["question_text"]);
}
//echo JSON to page
$response = $_GET["jsoncallback"] . "(" . json_encode($quiz_data) . ")";
echo $response;
... и используя jQuery $ .getJSON () в моем JavaScript, который получает мой объект в формате JSON из моего PHP, который возвращает мне следующее:
[
{"question":"question text here"},
{"question":"question text here"}
]
Итак, мой вопрос, как я могу написать свои SQL и PHP для создания многомерный массив, как показано выше, вместо одного массива, как я сейчас возвращаюсь? Мне нужно выяснить, как включить вопросы и все связанные с ними ответы в виде многомерного массива.