sql >> Database >  >> RDS >> Mysql

Json van twee mysql-tabellen in PHP

Je gebruikt extreem grote aantallen queries. Waarom doet u het niet in één enkele zoekopdracht?

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

en gebruik vervolgens het resultaat om het JSON-object te bouwen.

EDIT Om het gemakkelijker te maken om het resultaat te herhalen, heb ik de Query een beetje gewijzigd in:

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

het resultaat ziet er als volgt uit:restaurantId, name, info, dishId, dish, description

je kunt het resultaat nu als volgt herhalen:

$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. MySQL - JOIN en WHERE gebruiken om het gemiddelde aantal uren te bepalen

  2. Mysql Workbench integer datatype bug (INT wijzigingen> (11) )

  3. php mysql - moet ik het veld categorienaam aan een tabel toevoegen of niet?

  4. Vermijd het invoegen van 'null'-waarden in de databasetabel via JPA