我得到了下面的数组。现在我得到了单个记录,但是它们的数组记录是什么时候,它就不起作用了。我试过用或治疗,但没用。
$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/