sql >> Databasteknik >  >> RDS >> Mysql

Json från två mysql-tabeller i PHP

Du använder ett extremt stort antal frågor. Varför inte göra det i en enda fråga?

SELECT * FROM `Restaurants` `r`
    LEFT JOIN `Dishes` `d` ON (`r`.`id` = `d`.`f_id`)
ORDER BY `r`.`id` ASC 

och använd sedan resultatet för att bygga JSON-objektet.

EDIT För att göra det lättare att upprepa resultatet ändrade jag frågan lite till:

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

resultatet kommer att se ut så här:restaurantId, name, info, dishId, dish, description

du kan nu upprepa resultatet så här:

$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']
}


  1. Hur man får ett heltalsutdata från en SQL-fråga

  2. Hur man avinstallerar SQL Server Management Studio(SSMS) - SQL Server/TSQL Tutorial Del 23.1

  3. hur får man in rotförfäderna i en hierarkifråga med oracle-10g?

  4. Vilken post kommer GROUP BY att välja i SQL