안녕하세요 모델 쿼리를 작성하는데 위에 쿼리문은 잘 작동하는데
if 문 아래에 있는 쿼리에 where in 조건을 주고 변수를 넣으려고 하면 작동이 되지 않습니다. 저 밑줄 부분에 변수를 사용하려면 어떻게 해야 하나요? ㅠㅠ
function get_ckp_group_board($params){
$query = $this->db->query('select name,sum(fund),sum(commission) from (
SELECT substring_index(cm.ckp_nickname, "_", 1) as name,
round(sum(chs.ckp_sum_amount),1) as fund,
0 as commission
FROM ckp_master as cm
LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq
LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id
where
ccs.title like "%구매자금%"
GROUP BY name,ccs.title
union all
SELECT substring_index(cm.ckp_nickname, "_", 1) as name,
0 as fund ,
round(sum(chs.ckp_sum_amount),1) as commission
FROM ckp_master as cm
LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq
LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id
where
ccs.title like "%물류비%"
GROUP BY name,ccs.title
) as v
group by name
order by name asc;');
if ($params['search_query'] <> "") {
$query = $this->db->query('select name,sum(fund),sum(commission) from (
SELECT substring_index(cm.ckp_nickname, "_", 1) as name,
round(sum(chs.ckp_sum_amount),1) as fund,
0 as commission
FROM ckp_master as cm
LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq
LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id
where
ccs.title like "%구매자금%"
GROUP BY name,ccs.title
union all
SELECT substring_index(cm.ckp_nickname, "_", 1) as name,
0 as fund ,
round(sum(chs.ckp_sum_amount),1) as commission
FROM ckp_master as cm
LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq
LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id
where
ccs.title like "%물류비%"
GROUP BY name,ccs.title
) as v
where name in ('$params['search_query']')
group by name
order by name asc;');
}
return $query->result_array();
}내용은 잘 모르겠지만...
where name in ('$params['search_query']')
를 아래처럼 바꿔서 테스트 해보세요.
where name in (' . "'" . implode("', '", $params['search_query']) . "'" . ')
컨트롤러 $params['search_query'] = $search_query; $data['arr_ckp_group_board'] = $this -> authority -> getCKPBoardGroup($params);
라이브러리 public function getCKPBoardGroup($params){ return $this -> ci -> ckp_model -> get_ckp_group_board($params); }
모델 function get_ckp_group_board($params){ $query = $this->db->query('select name,sum(fund),sum(commission) from ( SELECT substring_index(cm.ckp_nickname, "_", 1) as name, round(sum(chs.ckp_sum_amount),1) as fund, 0 as commission FROM ckp_master as cm LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id where ccs.title like "%구매자금%" GROUP BY name,ccs.title union all SELECT substring_index(cm.ckp_nickname, "_", 1) as name, 0 as fund , round(sum(chs.ckp_sum_amount),1) as commission FROM ckp_master as cm LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id where ccs.title like "%물류비%" GROUP BY name,ccs.title ) as v group by name order by name asc;'); if ($params['search_query'] <> "") { $query = $this->db->query('select name,sum(fund),sum(commission) from ( SELECT substring_index(cm.ckp_nickname, "_", 1) as name, round(sum(chs.ckp_sum_amount),1) as fund, 0 as commission FROM ckp_master as cm LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id where ccs.title like "%구매자금%" GROUP BY name,ccs.title union all SELECT substring_index(cm.ckp_nickname, "_", 1) as name, 0 as fund , round(sum(chs.ckp_sum_amount),1) as commission FROM ckp_master as cm LEFT JOIN ck_code_setting as ccs ON ckp_type = code_seq LEFT JOIN ckp_history_stat as chs ON cm.ckp_master_id = chs.ckp_master_id where ccs.title like "%물류비%" GROUP BY name,ccs.title ) as v where name in ('$params['search_query']') group by name order by name asc;'); }
이런식으로 넘겨주는데 위에 쿼리는 되는데 똑같이 복사해서 밑에 변수만 추가해주려니 밑줄 부분에 에러가 나네요 ㅠㅠ
한대승님 감사합니다!!! implode 빼고 알려주신대로 하니까 바로 성공했어요 감사합니다 ㅠㅠ
ㅎㅎ 빼고 하니 된다니 신기하네요.
echo $this->db->last_query();
쿼리 출력해서 확인해 보세요.