繁体   English   中英

更改JSON的mysql结果以按键索引

[英]Alter mysql result for JSON to index by key

我有一个mysql结果,我将其提取为数组并将其编码为JSON,如下所示:

$getDisplayPage = "
SELECT p.id as pageID, page_type_id, display_id, slide_order, duration, background_img, pn.ID as panel_id, panel_type_id, cont_id, c.ID as contID, content 
FROM pages p
inner join panels pn
on p.id = pn.page_id 
inner join content c
on pn.cont_id = c.id
WHERE p.active = 1
and pn.active = 1
AND p.display_id = '".$display."'
";

$showDisplayResult = $mysqlConn->query($getDisplayPage);
while($row=mysqli_fetch_assoc($showDisplayResult))
    {
        $rows[] = $row;
    }
$showDisplays = json_encode($rows);

它为每个条目返回一行,但是我需要以某种方式将其更改为按页面ID索引。 如果您在下面看到我的JSON,它将返回正确的数据,但实际上它应该只有3个对象/行,而不是5。我需要能够访问给定pageID的所有属性。 我该如何更改才能为我提供正确的JSON对象?

[{"pageID":"93",
    "page_type_id":"2",
    "display_id":"2",
    "slide_order":null,
    "duration":"74",
    "background_img":"images\/bg_rainbow.svg",
    "panel_id":"86",
    "panel_type_id":"2",
    "cont_id":"138",
    "contID":"138",
    "content":"\r\n\r\n\r\n<\/head>\r\n\r\nLeft 93<\/p>\r\n<\/body>\r\n<\/html>"},
{"pageID":"93",
    "page_type_id":"2",
    "display_id":"2",
    "slide_order":null,
    "duration":"74",
    "background_img":"images\/bg_rainbow.svg",
    "panel_id":"87",
    "panel_type_id":"3",
    "cont_id":"139",
    "contID":"139",
    "content":"\r\n\r\n\r\n<\/head>\r\n\r\nRight 93<\/p>\r\n<\/body>\r\n<\/html>"},
{"pageID":"95",
    "page_type_id":"1",
    "display_id":"2",
    "slide_order":null,
    "duration":"123",
    "background_img":"images\/bg_rainbow.svg",
    "panel_id":"90",
    "panel_type_id":"1",
    "cont_id":"142",
    "contID":"142",
    "content":"\r\n\r\n\r\n<\/head>\r\n\r\nTesting a full page for ID 95<\/p>\r\n<\/body>\r\n<\/html>"},
{"pageID":"105",
    "page_type_id":"2",
    "display_id":"2",
    "slide_order":null,
    "duration":"54",
    "background_img":"images\/bg_rainbow.svg",
    "panel_id":"97",
    "panel_type_id":"2",
    "cont_id":"149",
    "contID":"149",
    "content":"\r\n\r\n\r\n<\/head>\r\n\r\nThis is left content<\/p>\r\n<\/body>\r\n<\/html>"},
{"pageID":"105",
    "page_type_id":"2",
    "display_id":"2",
    "slide_order":null,
    "duration":"54",
    "background_img":"images\/bg_rainbow.svg",
    "panel_id":"98",
    "panel_type_id":"3",
    "cont_id":"150",
    "contID":"150",
    "content":"\r\n\r\n\r\n<\/head>\r\n\r\nThis is right content<\/p>\r\n<\/body>\r\n<\/html>"}]
$getDisplayPage = "
SELECT p.id as pageID, page_type_id, display_id, slide_order, duration, background_img, pn.ID as panel_id, panel_type_id, cont_id, c.ID as contID, content 
FROM pages p
inner join panels pn
on p.id = pn.page_id 
inner join content c
on pn.cont_id = c.id
WHERE p.active = 1
and pn.active = 1
AND p.display_id = '".$display."'
";

$showDisplayResult = $mysqlConn->query($getDisplayPage);
while($row=mysqli_fetch_assoc($showDisplayResult))
    {
        $rows[$row['pageID']][] = $row;
    }
$showDisplays = json_encode($rows);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM