Struktura menu Json z MySQL

Zajmowałem się tą sprawą i wydawałem się bardzo prosta. Próbuję stworzyć menu / podmenu json out put z PHP / MYSQL: Oto tabele:

   CREATE TABLE `menuHome` 
  `id`,
  `titleName`

   CREATE TABLE `menu` 
  `id`,
  `parentmenu`,
  `name`

„menuHome” zawierałoby „titleName”, na przykład „About Us”, połączone „id” w „menu” przez „parentmenu”, co miałoby wiele wpisów, takich jak „historia”, „Właściciele”, „Wiadomości”.

Struktura, którą staram się osiągnąć, to:

`
 {
  "menu" : {
    "sections" : [
      {
        "title" : "About Us",
        "items" : [
          {
            "name" : "History",
            "id" : "0909"
          },
          {
            "name" : "Owners",
            "id" : "0910"
          },
          {
            "name" : "News",
            "id" : "0916"
          }
        ]
      },
      {
        "title" : "Contact Us",
        "items" : [
          {
            "name" : "Address",
            "id" : "0949"
          },
          {
            "name" : "Map",
            "id" : "0978"
          }
        ]
      },
      {
        "title" : "Products",
        "items" : [
          {
            "name" : "Jeans",
            "id" : "1010"
          },
          {
            "name" : "Tables",
            "id" : "1088"
          },
          {
            "name" : "Shoes",
            "id" : "2424"
          }
        ]
      }
    ]
  }
}


`

Próbowałem, dla, dla każdego, w wielu konfiguracjach, ale nie mogę zmusić go do zbudowania odpowiedniej struktury tablicy do kodowania do json. Jestem teraz na etapie ślepoty kodu, więc każda pomoc zostanie bardzo przyjęta

to była moja ostatnia próba:

     $sql_query  = 'SELECT menuHome.titleName, menuHome.id FROM menuHome';
        $result = $mysqli->query($sql_query);
        $menu = array();
        while ($row = $result->fetch_assoc()) {

        $menuid = $row["id"];

        $sql_query2  = 'SELECT menu.name, menu.id FROM menu WHERE menu.parentmenu = "' .  $menuid . '"';

        $result2 = $mysqli->query($sql_query2);

        while ($row2 = $result2->fetch_assoc()) {

         $menu[$row["titleName"]][] = $row2;


         }
        }

return json_encode($menu); 

Oto rezultat, jaki przynosi powyższe:

{
  "About Us" : [
    {
      "name" : "History",
      "id" : "1"
    },
    {
      "name" : "Owners",
      "id" : "2"
    },
    {
      "name" : "News",
      "id" : "3"
    }
  ],
  "Contact Us" : [
    {
      "name" : "Address",
      "id" : "4"
    },
    {
      "name" : "Map",
      "id" : "5"
    }
  ],
  "Products" : [
    {
      "name" : "Jeans",
      "id" : "6"
    },
    {
      "name" : "Tables",
      "id" : "7"
    },
    {
      "name" : "Shoes",
      "id" : "8"
    }
  ]
}

Problem polega na tym, że nie mogę uzyskać „par” wcześniejszych - „title” = „O nas” ... to coś prostego, ale w tej kwestii jestem martwy.

Mogę to dodać przed json_encode:

  $menuoutput = array("menu" => array("sections" => array($menu)));

Ale jak uzyskać 'key' 'titleName' lub tylko 'title', aby wyświetlić przed 'About Us' ...

questionAnswers(1)

yourAnswerToTheQuestion