Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter MySQL根据会话中的用户ID过滤数据_Php_Mysql_Sql_Codeigniter - Fatal编程技术网

Php Codeigniter MySQL根据会话中的用户ID过滤数据

Php Codeigniter MySQL根据会话中的用户ID过滤数据,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,在我的模型中,我有以下功能,可以根据会话中的用户ID选择记录 public function getOfficer() { $usr = $this->session->userdata('id_user'); $userArray = $this->db->order_by('last_name','ASC')->where_in('tbl_officer.p_code', [8,10,24]); $userArray1 =

在我的模型中,我有以下功能,可以根据会话中的用户ID选择记录

public function getOfficer()
    {
     $usr = $this->session->userdata('id_user');
     $userArray = $this->db->order_by('last_name','ASC')->where_in('tbl_officer.p_code', [8,10,24]);
     $userArray1 = $this->db->order_by('last_name','ASC')->get_where('tbl_officer', array('status' => 1, 'usr'=>$this->session->userdata('id_user')));

     if($usr == 4){
        $this->db->where('p_code',$userArray );
     }else{
        $this->db->where('usr',$userArray1);
     }
     $q = $this->db->get('tbl_officer');
     if ($q->num_rows() > 0) {
        return $q->result();
     }
     return false;
    }
如果用户4在会话中,记录应按p_代码[8,10,24]进行过滤,并且会话中的任何其他用户,记录应按usr进行过滤。usr列包括用户ID,如1、2、3、4等

但是函数在出现错误后退出,并没有得到预期的结果

错误号码:42000/1064

您的SQL语法有错误;检查手册 对应于要使用的正确语法的MariaDB服务器版本 第2行“WHERE
p_code
=”附近

选择*WHERE
p\u code
=

文件名:C:/xampp/htdocs/doahrm/application/models/Officer\u model.php

电话号码:106

行号106是
$q=$this->db->get()


可能出了什么问题?有人能帮忙吗?

根据原始sql,表名称中的
丢失:

选择*WHERE`p\u code`=。。。
所以你失去了你的桌子:

$q=$this->db->get('table_name');
我认为您的代码需要如下所示:

getOfficer()公共功能
{
$usr=$this->session->userdata('id_user');
如果($usr==4){
$query=$this->db->order_by('last_name','ASC')->where_in('tbl_officer.p_code',[8,10,24]);
}否则{
$query=$this->db->order\u by('last\u name','ASC')
->其中(数组('status'=>1,'usr'=>$usr));
}
$query=$query->get('tbl_officer');
如果($query->num\u rows()>0){
返回$query->result();
}否则{
返回false;
}
}

@TsaiKoga。修改为我的编辑。但还是有同样的问题。@TsaiKoga。这是错误号:42000/1064您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解第3行“”附近使用的正确语法,从
tbl_officer
中选择*其中
p_code
=文件名:C:/xampp/htdocs/doahrm/application/models/officer_model.php行号:107@TsaiKoga。从
tbl\u officer
中选择*,其中
p\u code
=@MCITTrends现在可以找到您的表格。但是Officer_model.php行号上出现了新的错误:107,这行代码是什么?@TsaiKoga$q=$this->db->get('tbl_officer');