Untuk menggabungkan data menjadi satu respons dan mengembalikan output yang dijangkakan, gunakan pendekatan berikut :
<code class="sql">SELECT subjects.userid, users.name AS username, ( SELECT id FROM tbsubjects WHERE userid = subjects.userid ORDER BY id ASC LIMIT 1 ) AS subjectsid, ( SELECT name FROM tbsubjects WHERE userid = subjects.userid ORDER BY time DESC LIMIT 1 ) AS subjectname, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND month = DATE_FORMAT(NOW(), "%c") ) AS activepts, IFNULL(SUM(subjects.points), 0) AS totalpts, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND semester = 1 ) AS sem1, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND semester = 2 ) AS sem2, ( SELECT IFNULL(SUM(points), 0) FROM tbsubjects WHERE userid = subjects.userid AND semester = 3 ) AS sem3 FROM tbsubjects AS subjects LEFT JOIN tbusers AS users ON users.id = subjects.userid WHERE subjects.userid = :userid1 GROUP BY subjects.userid ORDER BY subjects.time DESC;</code>
Jika senarai pengguna kosong, kembalikan mesej ralat dalam format JSON:
<code class="php">$response->getBody()->write( '{ "error": { "message":"Invalid" } }' );</code>
Jika tidak, kembalikan senarai pengguna yang dikodkan JSON.
Dengan mengandaikan jadual subjek anda mempunyai struktur yang sama seperti dalam penerangan awal anda, anda boleh menggunakan skrip berikut untuk mengambil dan memformat data yang diperlukan:
<code class="php"><?php $userid1 = 1; // Replace this with the actual user ID // SQL statement $sql = 'SELECT ... FROM ... WHERE subjects.userid = :userid1 GROUP BY ... ORDER BY ...'; // Bindings $bindings = array( ':userid1' => $userid1 ); // Fetch users $users = $dbAdapter->fetchAll($sql, $bindings); // Handle results if (empty($users)) { // Handle empty users list } else { // Handle users list }</code>
Skrip menganggap anda mempunyai kelas DbAdapter yang menyediakan kaedah untuk interaksi pangkalan data. Kelas ini harus mengendalikan penubuhan sambungan, penyediaan pernyataan dan pengambilan data.
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Data Respons Berbilang dalam Satu Respons dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!