Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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
Mysql 数据表模型错误_Mysql_Codeigniter_Datatables - Fatal编程技术网

Mysql 数据表模型错误

Mysql 数据表模型错误,mysql,codeigniter,datatables,Mysql,Codeigniter,Datatables,这是我的datatable模型,它组合了我需要的所有表,控制台在代码中发现了一个错误,其中VehicleNo是不明确的 我还需要按ApplicationNo排序并区分ApplicationNo,这样它就不会复制其他表 private function _get_datatables_query(){ if($this->input->post('Status')) {

这是我的datatable模型,它组合了我需要的所有表,控制台在代码中发现了一个错误,其中VehicleNo是不明确的

我还需要按ApplicationNo排序并区分ApplicationNo,这样它就不会复制其他表

private function _get_datatables_query(){    
if($this->input->post('Status'))
{                                                           
    $this->db->where('Status', $this->input->post('Status'));
}
$this->db->select('*');
//$this->db->distinct('ApplicationNo');
$this->db->from($this->table);
$this->db->distinct();
$this->db->join('user', 'user.userId = loanapplication.userId');;
$this->db->join('collateraldetails', 'collateraldetails.ApplicationNo = loanapplication.ApplicationNo');
$this->db->join('vehicleinformation', 'vehicleinformation.VehicleNo = collateraldetails.VehicleNo');
$this->db->join('loanrequest', 'loanrequest.ApplicationNo = loanapplication.ApplicationNo');
$this->db->join('loanapproval', 'loanapproval.RequestNo = loanrequest.RequestNo');
$this->db->join('paymentdetails', 'paymentdetails.ApplicationNo = loanapplication.ApplicationNo');
$this->db->join('loanpayment', 'loanpayment.PaymentId = paymentdetails.PaymentId');
//echo $this->db->last_query();exit;

$i = 0;

foreach ($this->column_search as $item) // loop column 
{
    if($_POST['search']['value']) // if datatable send POST for search
    {       
        if($i===0) // first loop
        {
            // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
            $this->db->group_start(); 
            $this->db->like($item, $_POST['search']['value']);
        }
        else
        {

            $this->db->or_like($item, $_POST['search']['value']);
        }

        if(count($this->column_search) - 1 == $i) //last loop
            $this->db->group_end(); //close bracket
    }
    $i++;
}

if(isset($_POST['ApplicationNo'])) // here order processing
{
    $this->db->order_by($this->column_order[$_POST['ApplicationNo']['0']['column']], $_POST['ApplicationNo']['0']['dir']);
} 
else if(isset($this->ApplicationNo))
{

    $ApplicationNo = $this->ApplicationNo;
    $this->db->order_by(key($ApplicationNo), $ApplicationNo[key($ApplicationNo)]);
}}

在多个表中有列
VehicleNo
。您加入了它,并且没有指定where条件中使用哪个表的列
VehicleNo
。这就是你得到这个错误的原因


您需要指定类似
车辆信息
车辆否
。另外,您应该使用表别名,这是一种很好的做法。

由于您所指的内容不清楚,因此不明确,请在表中使用别名。

消息的可能重复会告诉您错误在WHERE子句中。不明确意味着(在联接中的所有表中)找到了对名为
VehicleNo
的a列的多个引用,并且您需要具体引用所需的一个。为此,只需添加所需的表:`table`.`VehicleNo`我认为问题在于dataTable预先定义了VehicleNo where子句$这->数据库->组启动()$这->数据库->像($item,$\u POST['search']['value']);您应该绕过
foreach($this->column\u search as$item)
行。您应该为$item使用密钥对值或多维数组。基本思想是从哪个表中指定$item。例如:如果您使用的密钥对值格式比
foreach($this->column\u search as$table=>$item)
和此行
$this->db->like($item,$\u POST['search']['value'])将是
$this->db->like($table.$item,$\u POST['search']['value'])