SELECT * FROM af_orders AS orders
INNER JOIN af_accounts ON account_id = orders.af_account_id
INNER JOIN af_orders_status ON order_status_id = orders.af_order_status_id
INNER JOIN af_deliveries ON af_order_id = orders.order_id
LEFT JOIN(
SELECT COUNT(order_id) as Isbilled,order_id
FROM af_orders , af_bills
WHERE FIND_IN_SET(order_id, ct_orders_ids)
GROUP BY order_id) as result
ON result.order_id = orders.order_id
GROUP BY orders.order_id
ORDER BY `result`.`Isbilled`,
if(isset($_POST['idOrdering'])||isset($_POST['idOrdering']))
{
if($_POST['idOrdering'] !="")
{
$idOrderOrdering =$_POST['idOrdering'] ;
$this->db->order_by('order_id',$idOrderOrdering);
}
if($_POST['amountOrdering'] !="")
{
$amountOrderOrdering =$_POST['amountOrdering'] ;
$this->db->order_by('order_final_amount_tax_exluded',$amountOrderOrdering);
}
}
else
{
$this->db->order_by('order_id','desc');
}
//filtering server side
$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
{
$this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
$this->db->like($item, strtoupper(ltrim(rtrim($_POST['search']['value']))));
}
else
{
$this->db->or_like($item, strtoupper(ltrim(rtrim($_POST['search']['value']))));
}
if(count($this->column_search) - 1 == $i) //last loop
$this->db->group_end(); //close bracket
}
$i++;
}
if(isset($_POST['item'])) // here item processing
{
$this->db->item_by($this->column_item[$_POST['item']['0']['column']], $_POST['item']['0']['dir']);
}
else if(isset($this->item))
{
$item = $this->item;
$this->db->item_by(key($item), $item[key($item)]);
}
Привет, ребята, кто-то может помочь мне с этим вопросом! Я не могу преобразовать его в codeigniter 3 построителя запросов, я использую серверную часть dataTable, чтобы получить все элементы таблицы. первый шаг я получаю все элементы из таблиц (объединяет, выбирает ...) второй шаг я фильтрую по найденным столбцам.