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

Bagaimana cara mengambil hasil sebagai array multidimensi dari mySQL dan PHP?

Anda tidak dapat mengambil array multi-dimensi murni dengan mysql (setidaknya sejauh yang saya tahu). Anda harus melakukan beberapa pemrosesan php. Ini tidak terdengar terlalu gila.

Pertama, perbarui kueri Anda untuk memilih jawaban secara bersamaan dengan bergabung dengan quiz_answers di quiz_questions menggunakan ID pertanyaan. Kemudian, dalam lingkaran Anda:

$quiz = array();
while ($row = mysql_fetch_assoc($result)) {
   // you don't need to check num_rows
   // fetch_assoc returns false after the last row, so you can do this
   // which is cleaner
   if (!isset($quiz[$row['question_id'])) {
      $quiz[$row['question_id']] = array(
         'question' => $row['question_text']
         , 'answers' => array()
      );
   }
   $quiz[$row['question_id']]['answers'][] = $row['answer_text'];
}
$full = json_encode(array('questions' => $quiz'));

Ini akan memberi Anda array yang Anda inginkan setelah json dikodekan.

Perhatikan bahwa Anda akhirnya akan memilih teks/id pertanyaan sekali per setiap jawaban, yang tidak efisien. Anda dapat menggunakan GROUP_CONCAT pada jawaban, tetapi yang di atas masih akan bekerja hampir sama, Anda hanya perlu membagi string jawaban.

Saya juga menyarankan Anda menggunakan PDO atau pembungkus lain di atas mysql_* .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mendapatkan jumlah baris di tabel MySQL menggunakan PHP?

  2. Mysql:Bagaimana cara menanyakan kolom yang tipenya bit?

  3. MySQL memeriksa apakah ada tabel tanpa melempar pengecualian

  4. Saling berteman sql dengan bergabung (Mysql)

  5. Menyimpan gambar yang diunggah pengguna secara efisien pada sistem file