Значение из MYSQL приближается к нулю
Я получаю код из codeignitor, используя функцию взлома. вот код
$this->load->database();
$session_data = $this->session->userdata('logged_in');
$user_id = $session_data['user_id'];
$this->db->select('skill_id');
$this->db->from('user_info_skillset');
$this->db->where('user_id',$user_id);
$query = $this->db->get();
foreach($query->result() as $row)
{
$skill_id[] = $row->skill_id;
}
$test = implode(',',$skill_id);
// echo '<pre />';
// print_r($test); exit;
$this->db->select('project_id');
$this->db->from('project');
$this->db->where_in('required_skills',$test);
$query1 = $this->db->get();
echo '<pre />';
print_r($query1); exit;
return $query1->result();
Проблема в том, что я не могу получить данные для
echo '<pre />';
print_r($query1); exit;
return $query1->result();
Когда я пытаюсь ввести этот запрос к базе данных вручную в MySQL, он работает, но по коду он отображает нулевое значение. в коде чего-то не хватает? пожалуйста, направь меня. ниже мой вывод.
Выход
CI_DB_mysql_result Object
(
[conn_id] => Resource id #34
[result_id] => Resource id #38
[result_array] => Array
(
)
[result_object] => Array
(
)
[custom_result_object] => Array
(
)
[current_row] => 0
[num_rows] => 0
[row_data] =>
)
1 ответ
Решение
Вы должны использовать FIND_IN_SET
пункт в вашем запросе:
$test = implode(',',$skill_id);
$where = " FIND_IN_SET(required_skills,'".$test."') ";
$this->db->select('project_id');
$this->db->from('project');
$this->db->where( $where, false );
//$this->db->where_in('required_skills',$test);
$query1 = $this->db->get();