gpt4 book ai didi

php - 使用 PHP 将 mySQL 表转换为带有子数组的 JSON 数组

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

我目前正在使用 PHP 的 json_encode 从 Javascript 中的 mySQL 表中读取数据。我的表有这样的格式: enter image description here

这个结构: enter image description here

我正在使用此 PHP 代码将其转换为 JSON 形式:

$sql = "SELECT `choice`, `choice_id`, `is_right_choice` FROM Question_choices WHERE `question_id` = 1";
$result = $conn->query($sql);
$rows = array();

if ($result->num_rows > 0) {
while($r = mysqli_fetch_assoc($result)) {
$rows[] = $r;
}}
else {
echo "Congrats, You Have Displayed All the Answers!";
}

header('Content-Type: application/json');
print json_encode($rows);

当我调用这个脚本时,我得到这个结果:

[{"choice":"A","choice_id":"1","is_right_choice":"0"},
{"choice":"B","choice_id":"2","is_right_choice":"0"},
{"choice":"Correct","choice_id":"3","is_right_choice":"1"},
{"choice":"D","choice_id":"4","is_right_choice":"0"}]

但是,我想格式化我的 JSON,使其具有一个“question_id”数组,如果您调用“question_id[0](或 1)”,它将包含所有“选择”的子数组' 'question_id' 也为 1 的值。

忽略FROM Question_choices WHERE Question_id = 1";,它只是为了立即获得正确的 JSON 调用。将来,我的表将具有许多不同的“question_id”值。

简而言之,我希望使用 PHP 的 JSON 编码来格式化我的 JSON,如下所示JSON:{question_id:1{{choice:A}、{choice:B}}、question_id:2{{choice:C}、{choice:D}} 等...}

使用 PHP 可以实现这一点吗?还是我必须寻找其他地方?

最佳答案

这会将每个 choice_id 的选项分组在一起:

SELECT GROUP_CONCAT( `choice` ), `choice_id`, `is_right_choice`
FROM Question_choices
GROUP BY `choice`

关于php - 使用 PHP 将 mySQL 表转换为带有子数组的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046416/

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