आप बहुत बड़ी संख्या में प्रश्नों का उपयोग कर रहे हैं। इसे एक ही प्रश्न में क्यों नहीं कर रहे हैं?
SELECT * FROM `Restaurants` `r`
LEFT JOIN `Dishes` `d` ON (`r`.`id` = `d`.`f_id`)
ORDER BY `r`.`id` ASC
और फिर JSON ऑब्जेक्ट बनाने के लिए परिणाम का उपयोग करें।
EDIT
परिणाम को पुनरावृत्त करना आसान बनाने के लिए, मैंने क्वेरी को थोड़ा बदल दिया:
SELECT
`r`.`id` as `restaurantId`,
`r`.`name`,
`r`.`info`,
`d`.`id` AS `dishId`,
`d`.`dish`,
`d`.`description`
FROM `restaurants` `r`
LEFT JOIN `dishes` `d` ON (`r`.`id` = `d`.`f_id`)
ORDER BY `r`.`id` ASC
परिणाम इस तरह दिखेगा:restaurantId, name, info, dishId, dish, description
अब आप परिणाम को इस प्रकार पुनरावृति कर सकते हैं:
$jsonArray = array();
foreach ($record as $dishDetails){
// details of the restaurant
$jsonArray[$dishDetails['f_id']]['name'] = $dishDetails['name'];
$jsonArray[$dishDetails['f_id']]['info'] = $dishDetails['info'];
// build the dishes of the restaurant
$jsonArray[$dishDetails['f_id']]['dishes'][$dishDetails['dishId']]['dish'] = $dishDetails['dish']
$jsonArray[$dishDetails['f_id']]['dishes'][$dishDetails['dishId']]['description'] = $dishDetails['description']
}