제목 | ci 모델 쿼리 안에 where in 변수 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 박종윤 | 작성시각 | 2020/10/29 18:50:18 |
|
|||
안녕하세요 모델 쿼리를 작성하는데 위에 쿼리문은 잘 작동하는데 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(); } |
|||
다음글 | CI3 과 CI4 중에 어떤걸 써야 될지 고민입니다. (5) | ||
이전글 | foreach 문을 2번 사용 (5) | ||
변종원(웅파)
/
2020/10/29 18:56:42 /
추천
0
|
한대승(불의회상)
/
2020/10/29 20:31:52 /
추천
0
내용은 잘 모르겠지만... where name in ('$params['search_query']') 를 아래처럼 바꿔서 테스트 해보세요. where name in (' . "'" . implode("', '", $params['search_query']) . "'" . ')
|
박종윤
/
2020/10/29 20:34:16 /
추천
0
컨트롤러 $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;'); } 이런식으로 넘겨주는데 위에 쿼리는 되는데 똑같이 복사해서 밑에 변수만 추가해주려니 밑줄 부분에 에러가 나네요 ㅠㅠ
|
박종윤
/
2020/10/29 20:40:17 /
추천
0
한대승님 감사합니다!!! implode 빼고 알려주신대로 하니까 바로 성공했어요 감사합니다 ㅠㅠ |
한대승(불의회상)
/
2020/10/29 21:09:35 /
추천
1
ㅎㅎ 빼고 하니 된다니 신기하네요. echo $this->db->last_query(); 쿼리 출력해서 확인해 보세요. |