問題很長,所以我不得不縮短它。使用json_encode從MySQL查詢返回JSON對象
無論如何,我目前有以下結果的表。
什麼我做的是以下內容:關聯到一個問題
- 查詢所有的答案,將其存儲到一個數組
這是我當前的查詢後,對其進行編碼:
$stmt = "SELECT questions.question_text, answers.answer_text
FROM questions, answers, test
WHERE questions.question_id = answers.question_id
AND questions.test_id =1";
$result = $connection->query($stmt);
哪給出我:
這是PHP:
$encode = array();
while($row = mysqli_fetch_assoc($result)) {
$encode[] = $row;
}
echo json_encode($encode);
,給了我這樣的輸出:
[
{
"question_text": "What is HTML?",
"answer_text": "HTML is a Hypertext Markup Language"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is a Hypertext Markup Language"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is a food"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is a food"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is an Asynchronous language"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is an Asynchronous language"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is a styling language"
},
{
"question_text": "What is HTML?",
"answer_text": "HTML is a styling language"
}
]
這是所需輸出與json_encode:
"What is HTML?": {
"1": "HTML is a Hypertext Markup Language",
"2": "HTML is a food",
"3": "HTML is an Asynchronous language",
"4": "HTML is a styling language"
}
什麼我目前得到的是多單對象與內他們的答案,但總是與它的答案之一。我希望製作一個包含所有答案和代表對象的問題的單個對象。我真的希望這是有道理的。我的邏輯很可能是失敗的,所以請原諒我。
我試着玩while循環,但我無法得到它的工作。有人能帶領我實現我想要的產出嗎?
謝謝。
你的問題有唯一的ID嗎? – Maximus2012
您所需的輸出既不是'json_encode'的功能,也不是mysql相關的功能。你必須自己在'$ encode'中重新組織你的對象。 – charlee
是的,他們這樣做。 @ Maximus2012 –