sql >> データベース >  >> RDS >> Mysql

mySQLとPHPから多次元配列として結果を取得するにはどうすればよいですか?

    純粋にmysqlを使用して多次元配列を取得することはできません(少なくとも私が知る限り)。いくつかのphp処理を行う必要があります。これはあまりクレイジーに聞こえません。

    まず、quiz_answersに参加して、クエリを更新し、同時に回答を選択します quiz_questionsで 質問IDを使用します。次に、ループ内で:

    $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でエンコードされた後に必要な配列が得られます。

    質問のテキスト/IDを回答ごとに1回選択することになり、非効率的であることに注意してください。 GROUP_CONCATを使用できます 回答については、上記はほぼ同じように機能しますが、回答文字列を分割する必要があります。

    また、PDOを使用することをお勧めします またはmysql_*のその他のラッパー 。



    1. Pythonでのmysql.connectorを使用したformat-parametersの処理に失敗しました

    2. 警告の問題:パラメータ1がmysqli_resultであると想定しています

    3. Access2019の仕組みと操作方法

    4. 列ヘッダーを出力テキストファイルに削除します