Преобразовать собственный запрос в кодировщик запросов - PullRequest
0 голосов
/ 27 января 2020
    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, чтобы получить все элементы таблицы. первый шаг я получаю все элементы из таблиц (объединяет, выбирает ...) второй шаг я фильтрую по найденным столбцам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...