1

idが特定の変数と等しいmoodleデータベースからすべてのレコードを選択したいのですが、moodleデータ操作API構文がどうなるか教えてください。

これがmysqlクエリです

Select question from mdl_answers where id=$questionid;

私が試してみました

$queid[]= $queid[] = $DB->get_field('question_answers', 'id', array('question' => $questionid), MUST_EXIST);
$true=$queid[0];   // this i get
$false=$queid[1];   //this remains empty

しかし、このIDに関連付けられた複数のレコードがあるのに対し、それは1つのレコードしか提供しません。

画像レコードでわかるように、71 と 72 は次の列で同じ値 48 を持っています。これらの ID 71 と 72 を取得したいです。 ここに画像の説明を入力

4

1 に答える 1

1

get_field()単一の値のみを返します。

どちらかを使用get_records()- https://docs.moodle.org/dev/Data_manipulation_API#Getting_an_hashed_array_of_records

$answers = $DB->get_records('question_answers', array('question' => $questionid));
foreach ($answers as $answer) {
    switch ($answer->answer) {
        case 'True':
            $true = $answer->id;
            break;
        case 'False':
            $false = $answer->id;
            break;
      }
}

またはget_field()、このように使用します

$true = $DB->get_field('question_answers', 'id', array('question' => $questionid, 'answer' => 'True'));
$false = $DB->get_field('question_answers', 'id', array('question' => $questionid, 'answer' => 'False'));
于 2016-06-12T05:01:57.367 に答える