代码之家  ›  专栏  ›  技术社区  ›  Rakesh Prajapat

如何检查哪个Codeigniter-like查询在多个like中返回数据

  •  0
  • Rakesh Prajapat  · 技术社区  · 6 年前

    我试图找出如何检查哪些like查询返回数据。用户可以搜索1.位置2.供应商名称,3.类别名称。假设用户搜索印度,印度也可以是供应商名称。现在查询返回一些结果作为位置,另一些结果作为供应商名称。我想将位置匹配结果存储到位置数组中 供应商名称匹配结果放入供应商名称数组,然后返回两个数组。

    这是我的模型

    <?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 回复  |  直到 6 年前
        1
  •  1
  •   Madhusudan    6 年前

    试试下面的逻辑,

      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;
    }
    
    推荐文章