Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Json dari dua tabel mysql di PHP

Anda menggunakan jumlah kueri yang sangat besar. Mengapa tidak melakukannya dalam satu kueri?

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

lalu gunakan hasilnya untuk membangun objek JSON.

EDIT Untuk mempermudah mengiterasi hasilnya, saya mengubah sedikit Query menjadi:

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

hasilnya akan terlihat seperti ini:restaurantId, name, info, dishId, dish, description

Anda sekarang dapat mengulangi hasilnya seperti ini:

$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. cara mengatur panjang tipe tanggal mysql dengan sekuel-kli

  2. Nomor kesalahan:3780 Kolom referensi '%s' dan kolom referensi '%s' dalam batasan kunci asing '%s' tidak kompatibel

  3. Kunci asing MySQL untuk mengizinkan NULL?

  4. MySQL CURRENT_TIMESTAMP sebagai DEFAULT

  5. PHP, MySQL, Transaksi PDO - Apakah kode di dalam blok coba berhenti di komit ()?