0

クエリで使用できる制約の配列を取り込めるようにしたいと考えています。次のような foreach ループを使用する場合

$this->db->select('id');
$this->db->from('items');
foreach($tags_array as $tag)
{
    $this->db->where('tag_id', $tag);
}

配列内の tag_id の最後に割り当てられた値のみを使用していることに気付きました。これを回避する方法があるかどうか疑問に思っていました。

これも「AND WHERE」句にしたいということを忘れていました。

ありがとう!

4

2 に答える 2

0
$this->db->select('id');
$this->db->from('items');
$tag_condition = array();
foreach($tags_array as $tag)
{
      $tag_condition[]   = $tag;
}

$this->db->where_in('tag_id', $tag_condition);

これを使ってみてはどうですか

于 2012-11-21T05:59:38.543 に答える
0

このように、モデルに関数を作成し、コントローラーを使用して配列内のすべての tag_ids をその関数に渡します......

$result = $this->model_name->function_name_in_model($tag_ids);

モデルでは、SQL で IN を使用する where 条件で使用します........正しい結果が得られます。

select id from items where id IN($tag_ids);
于 2012-11-21T06:02:00.957 に答える