这是我在模型中的查询
$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。并且我检查的距离超过此值仍未显示附近的位置,并且当数据库中存在多个位置时显示位置。
答案 0 :(得分: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()
}