这是我的数据表模型,它结合了我需要的所有表,并且控制台在VehicleNo不明确的代码中发现了一个错误。DataTable模型错误
我还需要通过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)]);
}}
可能重复[PHP&MYSQL:如何解决JOIN操作中不明确的列名?](https://stackoverflow.com/questions/431391/php-mysql-how-to-resolve-ambiguous-column-names -in-join-operation) – cwallenpoole
消息告诉你错误在WHERE子句中。含糊不清的含义是指找到一个名为'VehicleNo'的列的多个引用(在连接的所有表中),并且您需要专门引用您想要的。要做到这一点,只需添加你需要的表格:\'table \'。\'VehicleNo \' –