データベースから会社を選択し(lat / lngが保存されている)、顧客の場所に最も近い5つの場所を表示する次のSQLステートメントがあります。これは完全に機能しています:
$ query = sprintf( "SELECT company_name、address、telephone、fax、contact_email、website、url、latitude、longitude、(1.609344 * 3959 * acos(cos(radians('"。$center_lat。"'))* cos(radians (緯度))* cos(radians(経度)-radians('"。$center_lng。"'))+ sin(radians('"。$center_lat。"'))* sin(radians(緯度)))))AS距離FROMcmsms_module_compdir_companiesWHERE status ='published' AND Latitude!='' ANDlongitude!='' ORDER BY distance limit 5 "、
mysql_real_escape_string($ center_lat)、
mysql_real_escape_string($ center_lng)、
mysql_real_escape_string($ center_lat));
ただし、結果を顧客の場所からX距離以内(たとえば50 km)の店舗のみに制限したいと思います。以下に太字でビットを追加できると思いました:
$ query = sprintf( "SELECT company_name、address、telephone、fax、contact_email、website、url、latitude、longitude、(1.609344 * 3959 * acos(cos(radians('"。$center_lat。"'))* cos(radians (緯度))* cos(radians(経度)-radians('"。$center_lng。"'))+ sin(radians('"。$center_lat。"'))* sin(radians(緯度)))))AS距離FROMcmsms_module_compdir_companiesWHERE status ='published' AND Latitude!='' ANDlongitude!='' AND distance <'50' ORDER BY distance limit 5 "、mysql_real_escape_string($ center_lat)、
mysql_real_escape_string($ center_lng)、
mysql_real_escape_string($ center_lat ));
...しかし、これは結果をまったく返しません。
何か案は?