配列の複数の基準を満たすデータベースからデータを取得しようとしています。
配列は次のようなものです。
Array ([21] => 1,[23] => 0,[19] => 1);
キーは質問IDであり、値はyesまたはnoのいずれかです。
question_id = 21
の値が1
、の値question_id = 23
がで、の値がである映画を見つける必要があり0
ます。それらを保存する方法は次のようになります。question_id = 19
1
したがって、私の最初の考えは、それぞれのデータを取得してから、それらをより大きな配列に配置することでした。映画が配列内の要素の数と同じ回数表示される場合、私はそれが良い一致であると考えます。しかし、これは非効率的なようです。むしろ、基準に合った映画を見つけたいと思います。
同じ値のレコードがあるのでmovie_id
、このようなものを書く方法はありますか?:
foreach($array as $key=>$value){
$i++;
$this->db->where('question_id', $key);
$this->db->where('value', $value);
}
$this->db->from('movies_values');
$query = $this->db->get();
$res = $query->result();
array_push($main,$res);
この背後にある考え方は、すべてのWHERE
のループを作成することです。次に、where値を使用してクエリを実行します。これはうまくいかないようですが、他に何かできることはありますか?