[英]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.