2016-11-09 49 views
0
$result3=$this->hrdb->select(array('concat(eb.first_name," ",eb.middle_name, " ",eb.last_name,"") as emp_name','eb.id','pp.emp_id','pp.gross_monthly','pp.amount as net_amount','pp.payslip_id','eor.dep_id')) 
        ->where('pp.emp_id' not_in     (select(array('pp.gross_monthly','pp.emp_id','pp.amount as net_amount','pp.payslip_id'))),Null,FALSE) 
        ->from('payroll_payments as pp') 
        ->join('employee_basic as eb','pp.emp_id=eb.id','left') 
        ->join('employee_org as eor','pp.emp_id=eor.emp_id','left') 
        ->order_by($_field, $params['_sort_direction']) 
        ->where(array('pp.npyear'=>$params['nep_year'],'pp.npmonth'=>$params['nep_month2'])) 
        ->get() 
        ->result(); 

查詢是我寫的查詢,但問題出現了,告訴使用哪裏都不在CI

Parse error: syntax error, unexpected T_STRING in /var/www/html/vianet_db/htdocs/addons/shared_addons/modules/hrm/models/payslip_m.php on line 558

+0

看起來像你錯過了一些引號。 – bansi

回答

0

使用concat(eb.first_name." ".eb.middle_name." ".eb.last_name."") as emp_name和檢查。從查詢中刪除'引用並簡單地添加字段名稱。而不是'eb.id','pp.emp_id',請使用eb.id,pp.emp_id。在選擇部分的所有字段和數組ID不需要的情況下執行此操作。

0

您需要在SELECT中添加第二個可選參數FALSE(首先也選擇),以免自動轉義字符。

$subqueryResult = //your subquery result in array 

$result3=$this->hrdb->select(array('concat(eb.first_name," ",eb.middle_name, " ",eb.last_name,"") as emp_name','eb.id','pp.emp_id','pp.gross_monthly','pp.amount as net_amount','pp.payslip_id','eor.dep_id'), FALSE) 
        ->from('payroll_payments as pp') 
        ->join('employee_basic as eb','pp.emp_id=eb.id','left') 
        ->join('employee_org as eor','pp.emp_id=eor.emp_id','left') 
        ->where_not_in('pp.emp_id', $subqueryResult) 
        ->where(array('pp.npyear'=>$params['nep_year'],'pp.npmonth'=>$params['nep_month2'])) 
        ->order_by($_field, $params['_sort_direction']) 
        ->get() 
        ->result(); 
+0

對不起!它沒有工作。 :( – Aaditya