#php #mysql #codeigniter
#php #mysql #codeigniter
Вопрос:
Я получил следующий массив. теперь я получаю отдельные записи, но когда есть записи их массива, это не работает. Я пробовал с условием OR, но это не работает.
$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. проверьте функцию or_where_in()
2. @Mohammad: но это не будет работать с get_where,
Ответ №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);
}
Комментарии:
1. он отлично работает с отдельными данными, но не работает со значениями массива
2. @nadygold: что ты получаешь?
3. для single я получаю Array ([0] => Array ( [name] => Comedy ) ) но в array я получаю пустое
4. я просто печатаю запрос, который я получаю следующим образом для выбора массива
name
ИЗgenre
, ГДЕgenre_id
= ‘[«2″,»5″,»20»]’5. Спасибо, чувак, ты мне очень помог