【问题标题】:How to combine multiple mysql rows into a JSON array如何将多个mysql行组合成一个JSON数组
【发布时间】:2021-08-26 10:27:54
【问题描述】:

我有一个小问题,目前,我有一个具有以下结构的表。

CREATE TABLE `product_data` (
`uid` INT NOT NULL COMMENT 'User Identifier',
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'Identifier',
`sex` enum('m','f','o') NOT NULL COMMENT 'Gender',
`fid` INT NOT NULL COMMENT 'Father Identifier',
`mid` INT NOT NULL COMMENT 'Mother Identifier',
`firstname` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'First Name',
`lastname` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Last Name',
`description` VARCHAR(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'Description',
`image` VARCHAR(2083) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT 'Image URL',
PRIMARY KEY (`id`));

当连接到我的 PHP 页面时,表格正在输出以下内容:

[{"uid":"0","id":"1","sex":"m","fid":null,"mid":null,"firstname":"Liam","lastname":"Nugent","description":"Weird Dog","image":null}]

现在我陷入困境的部分是我不知道如何将我的数据重组为以下内容。

[{"uid":"0","id":"1","sex":"m","parents": [1, 2],"firstname":"Liam","lastname":"Nugent","description":"Weird Dog","image":null}]

基本上我想将 mid 和 fid 组合成一个数组并给它一个新的父母名称,但我不知道从哪里开始。我想要这个,所以我可以使用 BasicPrimitives 库。您能否告诉我有关术语的概念,或者我应该研究什么来学习如何重构 JSON 数据?

非常感谢大家!

【问题讨论】:

  • 您可以在关联数组中一一获取行 - 然后只需取消设置 fidmid 键,同时使用 [fid, mid 将 parents 键设置为新数组]
  • 这是我目前从 MySQL 表中获取数据的方式:include_once "connection.php"; $queryall = mysqli_query($conn, "SELECT * FROM product_data"); if ($conn) { echo "连接成功
    "; }else{ echo "连接失败
    "; } $rows = 数组();而($r = mysqli_fetch_assoc($queryall)) { $rows[] = $r; } $mysqloutput = json_encode($rows);是否可以将我链接到我可以理解键的设置和不稳定的资源?

标签: mysql json


【解决方案1】:
include_once "connection.php"; 
$queryall = mysqli_query($conn, "SELECT * FROM product_data"); 
if ($conn) { echo "connection success<br>"; }
else{ echo "connection unsuccess<br>"; } 
$rows = array(); 
while($r = mysqli_fetch_assoc($queryall)) 
{ 
  $r['parents'] = Array($r['fid'], $r['mid']);
  unset($r['fid']);
  unset($r['mid']);
  $rows[] = $r; 
} 
$mysqloutput = json_encode($rows);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多