Php 是否使用CI活动记录在数据库中动态插入值?

Php 是否使用CI活动记录在数据库中动态插入值?,php,codeigniter,activerecord,codeigniter-2,Php,Codeigniter,Activerecord,Codeigniter 2,我有一个从外部数据库获取数据的功能,我可以获得特定的电影信息,如id、名称、类型等。现在,如果电影类型是例如动画,我只希望将这一种类型添加到db中。现在我可以使用isset来解决这个问题,但接下来我会为tyresnull设置db条目,我想避免这种情况。解决这个问题的最佳方法是什么?使用foreach循环 $records = array( array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][0]),

我有一个从外部数据库获取数据的功能,我可以获得特定的电影信息,如id、名称、类型等。现在,如果电影类型是例如动画,我只希望将这一种类型添加到db中。现在我可以使用isset来解决这个问题,但接下来我会为tyresnull设置db条目,我想避免这种情况。解决这个问题的最佳方法是什么?使用foreach循环

$records = array(
    array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][0]),
    array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][1]),
    array('film_id' => $movies['id'], 'genre_id' => $movies['genre'][2])
);

$this->db->insert_batch('film_genre', $records);
你也可以使用


您可以使用Mysql的
groupby
函数对获取的数据进行分组

如何查询外部数据库?您是否可以选择流派与指定流派(例如动画)匹配的记录,而不是返回与所有流派匹配的记录?如果没有,那么您的建议是迭代记录可以工作。我会根据电影标题返回特定查询,因此无法选择任何其他内容。正如您已经建议的,使用foreach循环。您可以筛选结果(从$records数组中删除一条记录),或者使用常规插入,一次插入一条记录(取决于您的条件),而不是插入批处理。
$arr = array(

    array("id"=>3, "genre"=>"action"),
    array("id"=>13, "genre"=>"comedy"),
    array("id"=>23, "genre"=>"action"),
    array("id"=>53, "genre"=>"comedy"),
    array("id"=>63, "genre"=>"drama"),
    array("id"=>73, "genre"=>"action"),
    array("id"=>83, "genre"=>"drama"),

);

function genre($var)
{
    if($var['genre'] == 'action')
    {
        return $var;
       // you can also do the insert here like $this->db->insert();
    }
}

$filtered = array_filter($arr, "genre");

print_r($filtered)