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

Bagaimana cara membawa lebih dari satu baris (mysql) hasil di dalam variabel yang sama saat menjalankan json_encode?

Jika saya memahami Anda dengan benar, tabel tPCN dapat berisi beberapa baris yang terkait dengan setiap nomor PCR. Dan Anda ingin mengambil semua baris ini dan mengembalikannya di JSON Anda.

Jika Anda ingin mencapai itu, tetapi juga memastikan dua tabel lainnya hanya mengembalikan satu baris, maka saya pikir Anda harus menghapus GABUNG ke tPCN di kueri pertama Anda, lalu buat kueri kedua untuk mengambil tPCN baris secara khusus.

$output = [];
$stmt = $dbConnected->prepare("SELECT * FROM change_management.tPCR INNER JOIN change_management.tcomplement ON change_management.tPCR.PCRNo = change_management.tcomplement.PCRNo WHERE tPCR.PCRNo = ?");
$stmt->bind_param('s', $_POST['pcr_number']);
$stmt->execute();
$result = $stmt->get_result();

//select a single row from the result and assign it as the output variable
if ($row = $result->fetch_assoc()) {
    $output = $row;
}

$stmt2 = $dbConnected->prepare("SELECT * FROM change_management.tPCN WHERE PCRNo = ?");
$stmt2->bind_param('s', $_POST['pcr_number']);
$stmt2->execute();
$result2 = $stmt2->get_result();
$output["tPCN"] = array(); //create a new property to put the tPCN rows in

//loop through all the tPCN rows and append them to the output
while ($row2 = $result2->fetch_assoc()) {
    $output["tPCN"][] = $row2;
}

echo json_encode($output);

Ini akan menghasilkan beberapa JSON dengan struktur seperti ini:

{
  "PCRNo": "ABC",
  "CreationDate": "2019-08-07",
  "Name": "A N Other",
  //...and all your other properties, until the new one:
  "tPCN": [
    {
      "SomeProperty": "SomeValue",
      "SomeOtherProperty": "SomeOtherValue",
    },
    {
      "SomeProperty": "SomeSecondValue",
      "SomeOtherProperty": "SomeOtherSecondValue",
    }
  ]
}

Anda kemudian perlu mengubah kode JavaScript Anda untuk dapat menangani struktur baru. Karena saya tidak tahu persis bidang mana yang berasal dari tPCN tabel, saya tidak bisa memberikan contoh untuk itu, tapi mudah-mudahan jelas bahwa Anda perlu mengulang array dan menampilkan HTML yang sama untuk setiap entri yang Anda temukan.

N.B. Seperti yang Anda lihat, saya menulis ulang kode kueri untuk menggunakan pernyataan yang telah disiapkan dan kueri berparameter, sehingga Anda dapat melihat cara menulis kode dengan cara yang aman di masa mendatang.

P.S. Anda memiliki banyak kode di sana dalam fungsi "sukses" hanya untuk mengatur nilai masing-masing bidang. Anda mungkin ingin mempertimbangkan untuk menggunakan mesin templating JS sederhana untuk membuat ini tidak terlalu bertele-tele dan tidak praktis, dan menghasilkan HTML yang Anda butuhkan dengan nilai yang ditambahkan secara otomatis ke dalamnya di tempat yang tepat. Tapi itu masalah terpisah, hanya untuk pemeliharaan kode Anda



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses Ditolak saat Rails terhubung ke Mysql

  2. Kirim file dengan tukang pos ke Laravel API

  3. Mengekspor tabel dari Amazon RDS ke file CSV

  4. Partisi tabel MySQL berdasarkan bulan

  5. Bagaimana menghindari kondisi balapan dengan pemeriksaan unik di Django