невозможно отобразить результат массива - PullRequest
1 голос
/ 28 марта 2019

Я получил следующий массив. теперь я получаю отдельные записи, но когда это их записи в массиве, это не работает. Я пытался с условием ИЛИ, но это не работает.

$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 массив индекса

1 Ответ

1 голос
/ 28 марта 2019

Вы можете использовать where_in, но вы не можете использовать его с get_where, вам нужно использовать альтернативу здесь вместо 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...