php—如何将数据库表数据按两列分组并输出为json?

z3yyvxxp  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(337)

我正在尝试从phpmyadmin(mysql)获取json(php)。它实际上需要看起来像:

[{ “converterno”: ”1”, “zoneno”: {“1a”, “codeid”:[“t1”,”t2”,”t3”]}, “zoneno”: {“1b”, “codeid”:[“t21”,”t0”,”t13”]}},{ “converterno”: ”2”, “zoneno”: {“2a”, “codeid”:[“t023”,”t9”,”t31”]}},………………………..

但我真正得到的是

[{"converternumber":"1","zonenumber":{"0":"","codeid":["er"]}},{"converternumber":"1","zonenumber":{"0":"wr","codeid":["fxv"]}},{"converternumber":"2","zonenumber":{"0":"b2","codeid":["gffff"]}}]

我不知道为什么我一开始就得零分
php代码是:

<?php
$db_name="app1";
$mysql_user="root";
$server_name="localhost";

$connectionn=mysqli_connect($server_name,$mysql_user,"",$db_name);
$n_converternumber= ["converternumber"];
$n_zonenumber= ["zonenumber"];
$n_codeid= ["codeid"];

$sql_query = "select * from addcode";
$result= mysqli_query($connectionn,$sql_query);

while ($row = mysqli_fetch_array($result)){
  if(!isset($info[$row['converternumber']])){
    $info[$row['converternumber']] = array(
      'converternumber'=> $row['converternumber'],
      'zonenumber' => array($row['zonenumber'],
      'codeid' => array($row['codeid']))
    );
}}
echo json_encode($info);
?>

谁能告诉我在while循环中哪里出错了吗。
浏览了stackoverflow中所有与json相关的代码,但没有发现任何更接近或类似的内容。几乎什么都试过了,现在就发这个!!希望我能得到任何帮助!
数据库中的表是:table addcode

flvlnr44

flvlnr441#

经过长时间的讨论,你似乎想要一个“祖父母子女”的结构。这是非常容易形成和完全关联的结构将保持您的数据非常紧凑和简单的迭代。

  • 你应该用 mysqli_fetch_assoc() 而不是腹胀 mysqli_fetch_array() 因为您不打算使用它生成的索引元素。

代码(基于数据库截图的演示)

while ($row = mysqli_fetch_assoc($result)){
    $info[$row['converternumber']][$row['zonenumber']][] = $row['codeid'];
}

三级数组如下所示:

array (
  1 => 
  array (
    '1a' => 
    array (
      0 => 'test007',
      1 => 'test006',
      2 => 'test0094',
      3 => 'test0098',
      4 => 'test010',
      5 => 'test111',
      6 => 'test 008',
      7 => 'test112',
      8 => 'test004',
      9 => 'test002',
      10 => 'test001',
    ),
    23 => 
    array (
      0 => 'rg',
    ),
    '2a' => 
    array (
      0 => 'test001',
      1 => 'test003',
    ),
    'feh' => 
    array (
      0 => 'ndo',
    ),
    'wr' => 
    array (
      0 => 'fxv',
    ),
  ),
  2 => 
  array (
    '1a' => 
    array (
      0 => 'test',
    ),
    'b2' => 
    array (
      0 => 'gffff',
    ),
  ),
)

相关问题