Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да извлека резултати като многоизмерен масив от mySQL и PHP?

Не можете да извлечете многоизмерен масив само с mysql (поне доколкото знам). Ще трябва да направите известна php обработка. Това не звучи твърде лудо.

Първо актуализирайте заявката си, за да изберете отговори по едно и също време, като се присъедините към quiz_answers на quiz_questions използвайки идентификатора на въпроса. След това във вашия цикъл:

$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'));

Това ще ви даде желания масив, след като е кодиран в json.

Имайте предвид, че в крайна сметка ще избирате текста/идентификатора на въпроса веднъж за всеки отговор, което е неефективно. Можете да използвате GROUP_CONCAT върху отговорите, но горното ще продължи да работи почти идентично, просто трябва да разделите низа за отговор.

Също така ви предлагам да използвате PDO или някаква друга обвивка над 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. MYSQL ПОРЪЧКА ПО СЛУЧАЙ Проблем

  2. mysql изберете дати в 30-дневен диапазон

  3. Кога трябва да използвам MySQL компресиран протокол?

  4. SQL ПОРЪЧАЙ ПО множество колони

  5. Връщане на връщане на база данни Грешка при премахване на база данни errno:66 в MySQL