どう

2017-12-26 7 views
1

私は列IDを持つテーブルserver_menuresponseを持つ別のテーブルの列内の1つのテーブルのデータを挿入するmenu_order menu_name menu_link data_icon sub_menu と列IDを持つ別のテーブルのsub_menu mainmenu_id submenu_order submenu_name submenu_link submenu_iconどう

私は、すべての列を取得したい

server_menuresponse

Result should be like this image

のsub_menu列内のsub_menu表Iは、PHPの結果は以下のようにする必要がありますしたい:

<?php 
stdClass::__set_state(array(

    'server_menuresponse' => 
    array (
    0 => 
    stdClass::__set_state(array(
     'id' => '1', 
     'menu_order' => '1', 
     'menu_name' => 'Home', 
     'menu_link' => '', 
     'data_icon' => '', 
     'sub_menu' => 
     array (
    ), 
    )), 
    1 => 
    stdClass::__set_state(array(
     'id' => '2', 
     'menu_order' => '2', 
     'menu_name' => 'New', 
     'menu_link' => '', 
     'data_icon' => '', 
     'sub_menu' => 
     array (
     0 => 
     stdClass::__set_state(array(
      'id' => '5', 
      'mainmenu_id' => '2', 
      'submenu_order' => '3', 
      'submenu_name' => 'Auto', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/auto.png', 
     )), 
     1 => 
     stdClass::__set_state(array(
      'id' => '4', 
      'mainmenu_id' => '2', 
      'submenu_order' => '2', 
      'submenu_name' => 'Bike', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/bike.png', 
     )), 
     2 => 
     stdClass::__set_state(array(
      'id' => '6', 
      'mainmenu_id' => '2', 
      'submenu_order' => '4', 
      'submenu_name' => 'Bus', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/bus.png', 
     )), 
     3 => 
     stdClass::__set_state(array(
      'id' => '3', 
      'mainmenu_id' => '2', 
      'submenu_order' => '1', 
      'submenu_name' => 'Car', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/car.png', 
     )), 
     4 => 
     stdClass::__set_state(array(
      'id' => '1', 
      'mainmenu_id' => '2', 
      'submenu_order' => '6', 
      'submenu_name' => 'Find All New Vehicle', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/new_vehicle.png', 
     )), 
     5 => 
     stdClass::__set_state(array(
      'id' => '7', 
      'mainmenu_id' => '2', 
      'submenu_order' => '5', 
      'submenu_name' => 'Lorry', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/lorry.png', 
     )), 
     6 => 
     stdClass::__set_state(array(
      'id' => '2', 
      'mainmenu_id' => '2', 
      'submenu_order' => '7', 
      'submenu_name' => 'New Vehicle Offer', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/new_offer.png', 
     )), 
    ), 
    )), 
    2 => 
    stdClass::__set_state(array(
     'id' => '3', 
     'menu_order' => '3', 
     'menu_name' => 'Used', 
     'menu_link' => '', 
     'data_icon' => '', 
     'sub_menu' => 
     array (
     0 => 
     stdClass::__set_state(array(
      'id' => '11', 
      'mainmenu_id' => '3', 
      'submenu_order' => '3', 
      'submenu_name' => 'Auto', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/auto.png', 
     )), 
     1 => 
     stdClass::__set_state(array(
      'id' => '10', 
      'mainmenu_id' => '3', 
      'submenu_order' => '2', 
      'submenu_name' => 'Bike', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/bike.png', 
     )), 
     2 => 
     stdClass::__set_state(array(
      'id' => '12', 
      'mainmenu_id' => '3', 
      'submenu_order' => '4', 
      'submenu_name' => 'Bus', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/bus.png', 
     )), 
     3 => 
     stdClass::__set_state(array(
      'id' => '9', 
      'mainmenu_id' => '3', 
      'submenu_order' => '1', 
      'submenu_name' => 'Car', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/car.png', 
     )), 
     4 => 
     stdClass::__set_state(array(
      'id' => '8', 
      'mainmenu_id' => '3', 
      'submenu_order' => '5', 
      'submenu_name' => 'Find All Used Vehicle', 
      'submenu_link' => '', 
      'submenu_icon' => 'menu_icon/new_vehicle.png', 
     )), 
    ), 
    )), 
    3 => 
    stdClass::__set_state(array(
     'id' => '4', 
     'menu_order' => '4', 
     'menu_name' => 'News & Reviews', 
     'menu_link' => '', 
     'data_icon' => '', 
     'sub_menu' => 
     array (
     0 => 
     stdClass::__set_state(array(
      'id' => '15', 
      'mainmenu_id' => '4', 
      'submenu_order' => '3', 
      'submenu_name' => 'Car Videos', 
      'submenu_link' => '', 
      'submenu_icon' => '', 
     )), 
     1 => 
     stdClass::__set_state(array(
      'id' => '17', 
      'mainmenu_id' => '4', 
      'submenu_order' => '5', 
      'submenu_name' => 'Feature Stories', 
      'submenu_link' => '', 
      'submenu_icon' => '', 
     )), 
     2 => 
     stdClass::__set_state(array(
      'id' => '14', 
      'mainmenu_id' => '4', 
      'submenu_order' => '2', 
      'submenu_name' => 'Road Test', 
      'submenu_link' => '', 
      'submenu_icon' => '', 
     )), 
     3 => 
     stdClass::__set_state(array(
      'id' => '13', 
      'mainmenu_id' => '4', 
      'submenu_order' => '1', 
      'submenu_name' => 'User Reviews', 
      'submenu_link' => '', 
      'submenu_icon' => '', 
     )), 
     4 => 
     stdClass::__set_state(array(
      'id' => '16', 
      'mainmenu_id' => '4', 
      'submenu_order' => '4', 
      'submenu_name' => 'Write Review', 
      'submenu_link' => '', 
      'submenu_icon' => '', 
     )), 
    ), 
    )), 
), 
), 
)); 
?> 
+1

使用が左結合を使用 –

+0

レコードをフェッチし、結果sub_menuフィールドのアレイを形成するために結合し、左。テーブルの完全な行を単一のフィールドに取り込むことができるかどうかは不明です。 – santoshM

+0

SQL joinを実行し、PHPを使用して結果を調べ、画像に表示されているとおりにデータ配列を構築します。 –

答えて

0

私は私の答えを完全に変えました!

この質問の回答に基づいて:How to group array data returned by left join query in php

私はあなたが2つの質問をすると思います。このように:

$data = array(); 

// get all the menu items 
$rows = $db->query("SELECT * from server_menuresponse order by id"); 
while ($row = mysqli_fetch_assoc($rows)) { 
    $row['sub_menu'] = []; // blank array for sub menu 
    $data[$row['id']] = $row; 
} 

// get sub menu items, add them to the correct menu item 
$rows = $db->query("SELECT * from sub_menu order by mainmenu_id, id"); 
while ($row = mysqli_fetch_assoc($rows)) { 
    $data[$row['mainmenu_id']]['sub_menu'][] = $row; 
} 

print_r($data); 
+0

コードに感謝しますが、以前のものは正確に動作していましたが、これはコードが少なくて済みましたが、以前のようなものではありませんでした。 –

+0

申し訳ありません!私は古いものを編集するのではなく、新しい答えを加えたはずです。 :) –