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

Membuat array di dalam array dari data mysql ke json

Anda perlu memetakan ulang array Anda dan kemudian menginisialisasi array untuk kunci hak... jadi, ubah while loop Anda seperti ini:

$json_response = array();
while($row = $result->fetch_assoc()) {
    if (!isset($json_response[ $row['idCategory'] ])) {
        $json_response[ $row['idCategory'] ] = [
            'idCategory' => $row['idCategory'],
            'nameCategory' => $row['nameCategory'],
            'rights' => [],
        ];
    }
    $json_response[ $row['idCategory'] ]['rights'][] = [
        'idRight' => $row['rid'],
        'name' => $row['rname'],
        'price' => $row['price'],
        'image' => $row['rimg']
    ];
}

// We want the final result to ignore the keys and to create a JSON array not a JSON object 
$data = [];
foreach ($json_response as $element) {
    $data[] = $element;
}

echo json_encode($data);

Ini bagian dari kode $json_response[ $row_array['idCategory'] ] membantu mempertahankan pengelompokan data yang unik karena membuat hash berdasarkan idCategory. Array hanya dapat memiliki satu kunci dan karena idCategory selalu unik, kita dapat menggunakannya sebagai kunci untuk pengelompokan. Kemudian karena kita sekarang memiliki array berbasis hash, kita harus membuat array baru yang merupakan array 'nyata' untuk saat dikonversi ke JSON.Anda tidak ingin menggunakan GROUP BY atau GROUP_CONCAT dalam situasi ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Formulir PHP mengirimkan data kosong ke mySQL

  2. flake8 mengeluh pada perbandingan boolean ==dalam klausa filter

  3. cara memeriksa dan mengatur variabel mysql max_allowed_packet

  4. Aturan apa yang berlaku untuk penamaan kolom mysql?

  5. Basis Data mana yang digunakan untuk aplikasi mandiri Winforms