gpt4 book ai didi

php - 使用 json_encode 从 MySQL 查询返回 JSON 对象

转载 作者:行者123 更新时间:2023-11-29 01:11:21 25 4
gpt4 key购买 nike

问题很长,所以我不得不缩短它。

无论如何,我目前有下表,结果如下。

我正在做的是:

  1. 查询与一个问题相关的所有答案
  2. 存入数组后编码

这是我当前的查询:

$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);

这给了我这个:

enter image description here

这是 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 循环,但无法让它工作。有人可以引导我以正确的方式实现我想要的输出吗?

谢谢。

最佳答案

听起来就像只是改变你正在构建的数组......

$encode = array();

while($row = mysqli_fetch_assoc($result)) {
$encode[$row['question _text']][] = $row['answer_text'];
}

echo json_encode($encode);

关于php - 使用 json_encode 从 MySQL 查询返回 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com