У меня есть 2 запроса в codeigniter, я использую для этих таблиц данных ajax.До этого он работал, когда я использую один запрос.После добавления еще одного запроса для UNION он не работает для меня.Найдите функции моей модели для таблиц данных.
Model.php (Работа этой функции) Использование одного запроса в функции _get_online_supplier_reports_datatable ()
<?php
public function _get_online_supplier_reports_datatable(){
$this->db->select('"Amadeus" AS SupplierName,TST_Type,TKT_Type,TKTNumber,TKT_FO_REF,BasePrice,TaxPrice,Commission1,(BasePrice+TaxPrice) AS TotalPrice,"issued" AS tkt_type,createdby,TicketedDate as created_date,CONCAT(a3m.firstname," ",a3m.lastname) AS created_name,a3m.account_id,a3m.locationvalue AS Location_ID,a3m.locationdescription AS Location_Name,a3m.costcentervalue AS CostCenter_ID,a3m.costcenterdescription AS CostCenter_Name');
$this->db->from($this->traveldb->database.".booking_price bp");
$this->db->join('a3m_account_details a3m','a3m.account_id=createdby','left');
$this->db->where('TKTNumber !=', '');
if(isset($_POST['order'])) // here order processing
{
$this->db->order_by($this->column_order_online_supplier_reports_match[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
}
else if(isset($this->order_online_supplier_reports_match))
{
$order = $this->order_online_supplier_reports_match;
$this->db->order_by(key($order), $order[key($order)]);
}
}
public function get_online_supplier_reports_datatable(){
$this->_get_online_supplier_reports_datatable();
if($_POST['length'] != -1)
$this->db->limit($_POST['length'], $_POST['start']);
$query = $this->db->get();
return $query->result();
}
public function count_filtered_online_supplier_reports_rec(){
$this->_get_online_supplier_reports_datatable();
$query = $this->db->get();
return $query->num_rows();
}
?>
Я добавил еще один запрос в _get_online_supplier_reports_datatable () функция для объединения обоих запросов. после этого она не работает
<?php
public function _get_online_supplier_reports_datatable(){
//Query 1 here
$this->db->select('"Amadeus" AS SupplierName,TST_Type,TKT_Type,TKTNumber,TKT_FO_REF,BasePrice,TaxPrice,Commission1,(BasePrice+TaxPrice) AS TotalPrice,"issued" AS tkt_type,createdby,TicketedDate as created_date,CONCAT(a3m.firstname," ",a3m.lastname) AS created_name,a3m.account_id,a3m.locationvalue AS Location_ID,a3m.locationdescription AS Location_Name,a3m.costcentervalue AS CostCenter_ID,a3m.costcenterdescription AS CostCenter_Name');
$this->db->from($this->traveldb->database.".booking_price bp");
$this->db->join('a3m_account_details a3m','a3m.account_id=createdby','left');
$this->db->where('TKTNumber !=', '');
$query1 = $this->db->get_compiled_select();
//QUery2 Here
$this->db->select('"Amadeus" AS SupplierName,"" AS TST_Type,"" AS TKT_Type,br_tkt AS TKTNumber,"" as TKT_FO_REF,br_fare_paid_B as BasePrice,br_tax_refund_TXT as TaxPrice,br_cancellation_penalty as Commission1,br_fare_total_RFT AS TotalPrice,br_cancel_type AS tkt_type,br_added_by as createdby,br_refund_date as created_date,CONCAT(a3m.firstname," ",a3m.lastname) AS created_name,a3m.account_id,a3m.locationvalue AS Location_ID,a3m.locationdescription AS Location_Name,a3m.costcentervalue AS CostCenter_ID,a3m.costcenterdescription AS CostCenter_Name');
$this->db->from($this->traveldb->database.".booking_refund bp");
$this->db->join('a3m_account_details a3m','a3m.account_id=br_added_by','left');
$this->db->where('br_tkt !=', '');
$query2 = $this->db->get_compiled_select();
//Union both querys
$query= $this->db->query($query1." UNION ALL".$query2);
if(isset($_POST['order'])) // here order processing
{
$this->db->order_by($this->column_order_online_supplier_reports_match[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
}
else if(isset($this->order_online_supplier_reports_match))
{
$order = $this->order_online_supplier_reports_match;
$this->db->order_by(key($order), $order[key($order)]);
}
}
public function get_online_supplier_reports_datatable(){
$this->_get_online_supplier_reports_datatable();
if($_POST['length'] != -1)
$this->db->limit($_POST['length'], $_POST['start']);
$query = $this->db->get();
return $query->result();
}
public function count_filtered_online_supplier_reports_rec(){
$this->_get_online_supplier_reports_datatable();
$query = $this->db->get();
return $query->num_rows();
}
Основная проблема заключается в том, что когда я использую объединение, будут данные, но я не хочу получать данные только их.Просто я хочу объединить оба 2 запроса.Моя обязательная функция Out put _get_online_supplier_reports_datatable () похожа на этот код.
public function _get_online_supplier_reports_datatable(){
//Query 1 here
$query1= $this->db->select('"Amadeus" AS SupplierName,TST_Type,TKT_Type,TKTNumber,TKT_FO_REF,BasePrice,TaxPrice,Commission1,(BasePrice+TaxPrice) AS TotalPrice,"issued" AS tkt_type,createdby,TicketedDate as created_date,CONCAT(a3m.firstname," ",a3m.lastname) AS created_name,a3m.account_id,a3m.locationvalue AS Location_ID,a3m.locationdescription AS Location_Name,a3m.costcentervalue AS CostCenter_ID,a3m.costcenterdescription AS CostCenter_Name');
$this->db->from($this->traveldb->database.".booking_price bp");
$this->db->join('a3m_account_details a3m','a3m.account_id=createdby','left');
$this->db->where('TKTNumber !=', '');
//$query1 = $this->db->get_compiled_select();
//QUery2 Here
$query2= $this->db->select('"Amadeus" AS SupplierName,"" AS TST_Type,"" AS TKT_Type,br_tkt AS TKTNumber,"" as TKT_FO_REF,br_fare_paid_B as BasePrice,br_tax_refund_TXT as TaxPrice,br_cancellation_penalty as Commission1,br_fare_total_RFT AS TotalPrice,br_cancel_type AS tkt_type,br_added_by as createdby,br_refund_date as created_date,CONCAT(a3m.firstname," ",a3m.lastname) AS created_name,a3m.account_id,a3m.locationvalue AS Location_ID,a3m.locationdescription AS Location_Name,a3m.costcentervalue AS CostCenter_ID,a3m.costcenterdescription AS CostCenter_Name');
$this->db->from($this->traveldb->database.".booking_refund bp");
$this->db->join('a3m_account_details a3m','a3m.account_id=br_added_by','left');
$this->db->where('br_tkt !=', '');
//$query2 = $this->db->get_compiled_select();
//Union both querys
$query= $this->db->query($query1." UNION ALL".$query2);
if(isset($_POST['order'])) // here order processing
{
$this->db->order_by($this->column_order_online_supplier_reports_match[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
}
else if(isset($this->order_online_supplier_reports_match))
{
$order = $this->order_online_supplier_reports_match;
$this->db->order_by(key($order), $order[key($order)]);
}
}