php - 需要使用 PHP $_GET 使我的 json 结果看起来像这样
问题描述
对于大学作业,我需要能够读取和创建数据到 mysql 数据库。问题是当我将 $_GET 数据编码为 json 时,但问题是 json 的布局符合我的预期或需要。我想知道是否有人能弄清楚我的数据库表的设置方式是否有问题,或者我的 PHP 代码是否有问题。我正在使用邮递员插入 URL,然后将正文更改为 json。
这也是我需要的样子:
{
"oid": "AB123456X",
"comments": [
{
"name": "Mary",
"comment": "This is a comment"
},
{
"name": "Anonymous",
"comment": "Another comment"
}
]
}
这是我 $_GET 时的当前样子:
{
"oid": "ABC123",
"0": {
"name": "Lucas",
"comment": "Hello"
},
"1": {
"name": "Kain",
"comment": "Hello"
},
"2": {
"name": "Harry",
"comment": "Hello"
},
"3": {
"name": "Will",
"comment": "Hello"
},
"4": {
"name": "Ana",
"comment": "Hello"
},
"5": {
"name": "Elanor",
"comment": "Hello"
},
"6": {
"name": "Amy",
"comment": "Hello"
},
"7": {
"name": "Will",
"comment": "Hello"
}
}
这是我当前用于获取数据然后显示它的 PHP 代码:
$result = $conn->query("SELECT name, comment
FROM objects WHERE oid='$oid'");
while($row = $result->fetch_assoc()) {
$json_array[] = $row;
}
echo json_encode($json_array, true);
这是我数据库中的表:
任何帮助将不胜感激!
解决方案
首先,创建一个数组来存储数据。这个数组需要 2 个键,oid
并且comments
. 为键分配 的oid
值$oid
。键应包含一个空comments
数组。
在您的循环中,只需将$row
变量添加到comments
键数组中。
$result = $conn->query("SELECT name, comment
FROM objects WHERE oid='$oid'");
$json_array = [
'oid' => $oid,
'comments' => []
];
while($row = $result->fetch_assoc()) {
$json_array['comments'][] = $row;
}
echo json_encode($json_array, true);
推荐阅读
- javascript - 如何在 Angular 7 中创建函数
- r - R数据框通过列名的第一个字母访问列
- python - Spark 和 Cassandra 在同一个 docker 中
- javascript - 在 Safari 中链接 .connect() 方法时获取“未定义不是对象”
- mobile - 空白:nowrap 效果不佳,我做错了什么?
- jquery - 一个单元格中的多行具有相同的记录
- excel - 打开具有文件中最新日期名称的 excel 文件
- excel - IF 值在列表中,执行 VLOOKUP 并添加结果
- jquery - 如何使用 AJAX 和 php 从 HTML 提交表单
- c - 我可以使用动态内存分配来减小 int 数组的大小然后重新分配内存吗?