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. PHP फ़ाइल कोड के कुछ भाग में प्रवेश नहीं कर सकती

  2. MySQL शेल का उपयोग करके तार्किक डेटाबेस बैकअप

  3. एक कॉलम का चयन करना जो MySQL में भी एक कीवर्ड है

  4. स्प्रिंग बूट schema.sql फ़ाइल में निष्पादन प्रक्रिया के साथ समस्या

  5. MySQL में कुछ कॉलम और रैंड () के आधार पर छाँटना