我有从数据库获取数据的php代码。现在需要将其转换为Json Object。但我想得到这样的输出
{
"message": "true",
"data": [
{
"c_id": "1",
"c_titleId": "1",
"cd_order": "1",
"cd_img": "/imgs/cp1/cp01.png"
},
{
"c_id": "2",
"c_titleId": "2",
"cd_order": "2",
"cd_img": [
"/imgs/cp3/cp301.PNG", "/imgs/cp3/cp303.PNG"]
}
]
}
我有以下代码
function getalldata() {
$sql = "SELECT chapters.c_id, chapters.c_titleId, chapterdetails.cd_order,
chapterdetails.cd_img , chapterdetails.cd_desc
from chapters
INNER JOIN chapterdetails ON
chapters.c_id = chapterdetails.c_id";
$result = $this->conn->query($sql);
return $result;
}
All the connections related code is seperated. this is the code which will be accessed from the app.
$result = $getdata->getalldata();
$num = mysqli_num_rows($result);
if ($num != 0) {
http_response_code(200);
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode(array("message" => "true","data" => $outp));
// echo json_encode();
} else {
http_response_code(200);
echo json_encode(
array("message" => "false",
"desc" => "No details available")
);
}
所以,我想做的是,如果输入了多个img网址,则应将其作为数组发送给相关的chapeter。
为了使您更接近解决方案,您要做的第一件事是它在查询中创建了一些别名,因此这可以帮助您构建JSON数据,例如:
PS:在此示例中,未处理每行的多张图像
SELECT chapters.c_id as c_id ,
chapters.c_titleId as c_titleId,
chapterdetails.cd_order as cd_order,
chapterdetails.cd_img as cd_img,
from chapters
INNER JOIN chapterdetails ON
chapters.c_id = chapterdetails.c_id
此查询将返回一个行数组,如:
//$data
array(2) {
[0]=>
array(4) {
["c_id"]=>
string(1) "1"
["c_titleId"]=>
string(1) "1"
["cd_order"]=>
string(1) "1"
["cd_img"]=>
string(18) "/imgs/cp1/cp01.png"
}
[1]=>
array(4) {
["c_id"]=>
string(1) "2"
["c_titleId"]=>
string(1) "2"
["cd_order"]=>
string(1) "2"
["cd_img"]=>
string(19) "/imgs/cp3/cp301.PNG"
}
}
}
然后,
$result = ["message" => true];
$result["data"] = $data;
$result_json = json_encode($result);
var_dump($result_json);
{
"message":true,
"data":[
{
"c_id":"1",
"c_titleId":"1",
"cd_order":"1",
"cd_img":"\/imgs\/cp1\/cp01.png"
},
{
"c_id":"2",
"c_titleId":"2",
"cd_order":"2",
"cd_img":"\/imgs\/cp3\/cp301.PNG"
}
]
}
如果要每行管理多张图像,请更新并说明更多数据存储方式。