簡體   English   中英

如何檢查像Codeigniter這樣的查詢會返回多個like中的數據

[英]How to check which Codeigniter like query return data in multiple like

我嘗試找出如何檢查類似查詢返回數據的方法。 用戶可以搜索為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;
    }
?>

嘗試以下邏輯,

  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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM