2016-03-31 15 views
0

動作しない問題は、クエリが任意のエラーが表示されない場合、モデルホテル距離計算のためのクエリstorelocatorここ

$array = array('dealercity' => $citycheck, 'lat' => $lat, 'lng' => $lng, 'sometype' => $sometypeid, 'type' => $typeid); 
    $this->db->select("*, (
    3959 * acos (
    cos (radians($lat)) 
    * cos(radians(lat)) 
    * cos(radians(lng) - radians($lng)) 
    + sin (radians($lat)) 
    * sin(radians(lat)) 
)) AS distance"); 

    $this->db->from('tbl_dealer_list'); 
    $this->db->where($array); 
    $this->db->having('distance < 25');      
    $this->db->order_by('distance'); 
    $this->db->limit(25, 0); 
    $query = $this->db->get(); 

の私のクエリです。私が特定の場所を検索するとき、同じ正確な場所が表示されています。 20マイル先の近くの場所は機能していません。 CodeigniterとMysqlを使用しています。 誰かが答えを知っているエラーを指摘してください。

質問を実行すると、ショーは0.00005899369716644287のような値です。私は近くの場所を表示していないこの値以上の距離でチェックされ、1つの場所が複数のデータベースに存在する場合はその場所を表示します。

+0

あなたのデータと$ lngと$ latの正確な値からlatとlngのサンプルをいくつか与えることができますか? – ptrk

+0

CIのアクティブレコードがなければ、SQLを投稿するだけです –

+0

素晴らしい!@Abdullaありがとう – Pointer

答えて

0
$return =array(); 

     $query= $this->db->query("select *, (3959 * acos(cos(radians($lat)) * cos(radians(lat)) * cos(radians(lng) - radians($lng)) + sin(radians($lat)) * sin(radians(lat)))) AS distance FROM tbl_dealer_list WHERE dealertype = '".$dealerid."'AND vehicletype = '".$vehicleid."' HAVING distance < 20 ORDER BY distance"); 

     if ($query->num_rows() > 0) 
     { 
     return $query->result();//$query->result_array() 

     } 
関連する問題