Удалить '' до и после () - PullRequest
0 голосов
/ 04 октября 2018

Из приведенного ниже кода я получаю SQL-запрос:

SELECT * FROM `tblstaff` WHERE `active` = 1 AND role IN '(10,7,4,5)'
AND staffid IN '(3,8,9,12,2 )' AND `is_not_staff` =0 ORDER BY
`firstname` DESC

с '()' n, который делает запрос неверным, значения получаются из $ staffids и $ roleid, и это строка, когдапреобразованный в связанный массив, он дает вывод в '(10,2,5)' .Итак, как удалить '' из запроса.

      if ($staff_role != STAFF_ROLE_SALE_AGENT_FTD_ID && $staff_role != STAFF_ROLE_SALE_AGENT_RETENTION_ID && ($view_own || $view )){
            if(get_staff_role() == STAFF_ROLE_ADMIN_ID){  
                $where['role NOT IN '] = "( ". STAFF_ROLE_SA_ID ." )" ; 
            } else{
                    $roleids = get_immediate_roleids();
                    if($roleids != ''){
                        $where['role IN'] = '('. $roleids .')';                
                    }
                }
            if($staff_role != STAFF_ROLE_SA_ID){
                if($view_own){
                    $staffids = get_immediate_staffids($staff_id); echo $staffids;
                    $where['staffid IN'] =  $staffids ." )" ;
                } else if(is_numeric($staff_office_id) && $staff_office_id > 0){
                        $staffids = get_immediate_staffids_under_office('', $staff_office_id);echo $staffids;
                        $where['staffid IN'] = "(". $staffids  ." )" ;
                    }
            }

1 Ответ

0 голосов
/ 24 октября 2018

Если вы используете конструктор запросов CI, вы должны изменить подход:

Замените это:
$ where ['role NOT IN'] = "(". STAFF_ROLE_SA_ID. ")";
С:
$ this-> db-> where_not_in ('role', STAFF_ROLE_SA_ID);
и так же, как для предложения Where In:
$ this-> db-> where_in ('staffid', $ staffids);

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