【发布时间】:2019-05-22 12:58:17
【问题描述】:
我正在尝试从 mysql 数据库中选择结果作为数组中的数组。
MariaDB 10.3
$fetch = $GLOBALS['mysqli']->query("SELECT id, name, (SELECT JSON_ARRAY(JSON_OBJECT('code',(SELECT code FROM zip WHERE id = zip)),JSON_OBJECT('name',(SELECT name FROM zip WHERE id = zip)))) AS zip FROM orders WHERE id = '188'");
$rows = array();
$r = mysqli_fetch_assoc($fetch);
$rows['PLZ'] = $r;
print_r($rows);
我得到以下结果
Array ( [PLZ] => Array ( [id] => 188 [name] => Boban [zip] => [{"code": "1140"}, {"name": "Penzing"}] ) )
我期望的结果是
Array ( [PLZ] => Array ( [id] => 188 [name] => Boban [zip] => Array ( [code] => 1140 [name] Penzing) ) )
有人可以帮帮我吗?
已解决
$fetch = $GLOBALS['mysqli']->query("SELECT id, name, (SELECT JSON_OBJECT('code',(SELECT code FROM zip WHERE id = zip),'name',(SELECT name FROM zip WHERE id = zip))) AS zip FROM orders WHERE id = '188'");
$rows = array();
$r = mysqli_fetch_assoc($fetch);
$rows['PLZ'] = $r;
foreach ($rows as &$row) {
$row['zip'] = json_decode($row['zip'], true);
}
print_r($rows);
我在 Lajos Veres 的帮助下用选项 a) 解决了,并且 sql 几乎没有变化
【问题讨论】: