0

次のようなキーと値を持つ配列があります。

Array ( [1] => 0 [3] => 0 )

question_id = 1 で値が 0 のデータベースを呼び出し、それを question_id = 3 で値が 0 のクエリと組み合わせたいと考えています。Codeigniter を使用しています。

私はもう試した:

foreach($array as $key=>$value){
    $this->db->where('question_id', $key);
    $this->db->where('value', $value);
    $this->db->from('movies_values');
    $query = $this->db->get();
    $res = $query->result();
    print_r($res);
    array_push($main_array,$res);
}
4

1 に答える 1

1

私があなたを正しければ、以下を試してください

$this->db->where_in('question_id',array_keys($array));
$this->db->where_in('value', array_values($array));
return $this->db->get('movies_values')->result();

編集 where句をペアでチェックしたい場合は、これを試してください

$count=0;
foreach($array as $key=>$value)
{
    $where=array('question_id' => $key, 'value' => $value);
    if($count==0)
        $this->db->where($where);
    else
        $this->db->or_where($where);
    $count++;
}
return $this->db->get('movies_values')->result();

それが生み出すだろう

SELECT *
FROM movies_values
WHERE question_id = key1 AND value val1
OR question_id = key2 AND value val2
OR question_id = key3 AND value val3

ref :アクティブ レコード

于 2013-02-23T22:47:56.087 に答える