php nested array for json output -


i run queries on 3 tables , i'm trying format results nested array. it's inner array thats got me stumped. sizes array should in beer array object outside of it. appreciated.

json

    {     "brewerid": "41",      "brewername": "prancing pony brewing",      "beers": [         {             "beerid": "816",              "productname": "prancing pony amber ale",              "ibu": "18.00",              "abv": "5.00",              "style": "amber ale"         },          {             "beerid": "817",              "productname": "prancing pony copper ale",              "ibu": "25.00",              "abv": "5.80",              "style": "indian pale ale"         },          {             "beerid": "837",              "productname": "prancing pony pale ale",              "ibu": "37.00",              "abv": "5.50",               "style": "pale ale"         },          {             "beerid": "838",              "productname": "prancing pony india red ale",              "ibu": "60.00",              "abv": "7.90",              "style": "indian pale ale"         }     ],      "sizes": [         {             "beerid": "816",              "size": "330ml bottle"         },          {             "beerid": "816",              "size": "330ml can"         },          {             "beerid": "837",              "size": "345ml can"         },          {             "beerid": "837",              "size": "375ml bottle"         }     ] },  

php

    $result = $func->getbrewers();      $json_response = array();      while ($row = mysqli_fetch_array($result))     {         $row_array = array();         $row_array['brewerid'] = $row['brewerid'];                 $row_array['brewername'] = $row['brewername'];         $row_array['beers'] = array();         $brewer_pk = $row['brewerid'];            $beer_qry = $func->getbeers($brewer_pk);         while ($beer_fet = mysqli_fetch_array($beer_qry))         {             $row_array['beers'][] = array(             'beerid' => $beer_fet['beerid'],             'productname' => $beer_fet['productname'],             'ibu' => $beer_fet['ibu'],             'abv' => $beer_fet['abv'],             'notes' => $beer_fet['notes'],             'style' => $beer_fet['style'],          );          $beer_pk = $beer_fet['beerid'];         $size_qry = $func->getsizes($beer_pk);         while ($size_fet = mysqli_fetch_array($size_qry))         {             $row_array['sizes'][] = array(             'beerid' => $size_fet['beerid'],             'size' => $size_fet['size'],             );         }     }      array_push($json_response, $row_array);     }     echo json_encode($json_response); 

it seems misindented @ point , went wrong point on.

$result = $func->getbrewers();  $json_response = array();  while ($row = mysqli_fetch_array($result)) {     $row_array = array(         'brewerid'   => $row['brewerid'],         'brewername' => $row['brewername'],         'beers'      => array()     );      $brewer_pk = $row['brewerid'];       $beer_qry = $func->getbeers($brewer_pk);     while ($beer_fet = mysqli_fetch_array($beer_qry))     {         $tmp = array(             'beerid'      => $beer_fet['beerid'],             'productname' => $beer_fet['productname'],             'ibu'         => $beer_fet['ibu'],             'abc'         => $beer_fet['abv'],             'notes'       => $beer_fet['notes'],             'style'       => $beer_fet['style'],             'sizes'       => array()         );          $beer_pk = $tmp['beerid'];         $size_qry = $func->getsizes($beer_pk);         while ($size_fet = mysqli_fetch_array($size_qry))         {             $tmp['sizes'][] = array(                 'beerid' => $size_fet['beerid'],                 'size'   => $size_fet['size'],             );         }          $row_array['beers'][] => $tmp;     }      array_push($json_response, $row_array); }  echo json_encode($json_response); 

in order simplify referencing somewhat, i've rewritten beers created in $tmp variable, has 'sizes' array various sizes appended. after beers , sizes added, $tmp added beers.

do note performing more database queries, (as requested) fetches sizes per beer , not last one.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -