Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Json z dwóch tabel mysql w PHP

Używasz bardzo dużej liczby zapytań. Dlaczego nie zrobić tego w jednym zapytaniu?

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

a następnie użyj wyniku do zbudowania obiektu JSON.

EDIT Aby ułatwić iterację wyniku, zmieniłem nieco zapytanie na:

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

wynik będzie wyglądał tak:restaurantId, name, info, dishId, dish, description

możesz teraz powtórzyć wynik w ten sposób:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Policz sumy według roku i miesiąca

  2. Jak odzyskać dane mysql za pomocą wielowątkowości Java?

  3. MySQL:jak przeprowadzić wyszukiwanie pełnotekstowe w wielu tabelach

  4. Jak mogę ustawić datę MySQL z ciągiem takim jak 2015-07-30 18:32:18?

  5. Nie można uruchomić niczego z mysql-utilities:Brak modułu o nazwie mysql.utilities.common.tools