无法显示阵列结果

无法显示阵列结果

我得到了下面的数组。现在我得到了单个记录,但是它们的数组记录是什么时候,它就不起作用了。我试过用或治疗,但没用。

$this->db->get_where('genre',array('genre_id'=>$row['genre_id']))->row()->name;
//I get Follwoing Records
Array(
[0] => Array
    (
        [movie_id] => 7
        [title] => Raaz
        [genre_id] => 8 // it display the name
        [actors] => []
        [trailer_url] => https://drive.google.com/
    )
[1] => Array
    (
        [movie_id] => 8
        [title] => Tribute
        [genre_id] => ["2","5","20"] // it doesn't display the name
        [actors] => []
        [trailer_url] => https://drive.google.com/
    )

我试过下面的代码
$this->db->get_where('genre',array('genre_id'=>$row['genre_id']))->row()->name;

上面的代码适用于0索引,但不适用于1索引数组

最佳答案

您可以使用where_in,但不能与get_where一起使用,您需要在此处使用alternate而不是get_where
例子:
你可以在这里交替如下:

$this->db->select('name');
$this->db->from('genre');
if(is_array($row['genre_id'])){ // if result is in array
    $this->db->where_in('genre_id',$row['genre_id']);
}
else{ // for single record.
    $this->db->where('genre_id',$row['genre_id']);
}
$query = $this->db->get();
print_r($query->result_array()); // will generate result in an array

编辑:
调试后,您将以字符串形式获取此值["2","5","20"],因此可以修改此代码:
$genreID = intval($row['genre_id']); //
if($genreID > 0){
    $this->db->where('genre_id',$row['genre_id']);
}
else{
   $genreID = json_decode($row['genre_id'],true);
   $this->db->where_in('genre_id',$genreID);
}

CI Query Builder

关于php - 无法显示阵列结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55401343/

10-10 03:22