これは私が必要とするすべてのテーブルを組み合わせたデータテーブルモデルで、VehicleNoがあいまいなこのコードではコンソールにエラーが見つかりました。DataTableモデルエラー
私はまた、あなたが複数のテーブルの列VehicleNo
を持って
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 \' –