Как проверить, какой Codeigniter как запрос возвращает данные в нескольких лайков - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь выяснить, как проверить, какой запрос возвращает данные. пользователи могут искать как 1. Расположение 2. Название поставщика, 3. Название категории. предположим, пользовательский поиск в Индии, где Индия может также имя поставщика. Теперь запрос возвращает некоторые результаты в виде местоположения, а некоторые - в качестве имени поставщика. Я хочу сохранить результаты сопоставления местоположения в массиве местоположений и результаты сопоставления имени поставщика в массиве vendor_name и затем возвращают оба массива.

Вот моя модель

<?php 
    class Search_M extends CI_Model{
        public function getSearchResults($search_query){
            $this->db->select('ov_activity.activity_id,ov_activity.timing,vendor_name,vendor_img,address');
            $this->db->from('ov_activity');
            $this->db->join('ov_vendors', 'ov_activity.vendor_id = ov_vendors.vendor_id','left');
            $this->db->join('ov_category', 'ov_activity.category_id = ov_category.category_id','left');
            $this->db->like('ov_vendors.vendor_name', $search_query);
            $this->db->or_like('ov_vendors.address', $search_query);
            $this->db->or_like('category_name', $search_query);

            $query  =   $this->db->get();
            return $query->result();
        }
    }
?>

Вот мой контроллер

<?php
    public function search_post() {
        $is_valid_token  = $this->authorization_token->validateToken();

        if(!empty($is_valid_token) AND $is_valid_token['status'] === TRUE)
        {
            $searchData = array();
            $searchData['query'] = $this->post('query');

            $getSearchResults = $this->Search_M->getSearchResults($searchData['query']);
            echo "<pre>";
            print_r($getSearchResults);
            exit;
    }
?>

1 Ответ

0 голосов
/ 29 октября 2018

Попробуйте ниже логики,

  function filter_record($result,$searchKeyword) {
     $setArr = array(); 
     $setArr['Location'] =  array();
     $setArr['Cat'] = array(); 
     $setArr['Vendor'] = array(); 

    foreach($result as $row) {
        if (stristr($row->location_field, $searchKeyword) ) {
                $setArr['Location'][] = $row;
        }else if (stristr($row->cat_field, $searchKeyword) ) {
                $setArr['Cat'][] = $row;
        }else if (stristr($row->vendor_field, $searchKeyword) ) {
                $setArr['Vendor'][] = $row;
        }


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