Я пытаюсь построить магазин локатор для АЗС с Google Maps API.
Я сделал все, как описано здесь (http://code.google.com/apis/maps/articles/phpsqlsearch.html),, но
- Функция поиска адреса не распознает большую часть ввода (я могу жить с этим)
- Оператор SQL, предоставленный Google, не возвращает никаких результатов (я проверил это, заменив оператор на "
SELECT * FORM markers
", который работает)
Моя таблица БД выглядит как
ID
NAME
ADDRESS
LAT
LNG
и утверждение, с которым у меня возникают проблемы:
$query = sprintf("SELECT name, address, lat, lng ( 6371 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 5",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
$result = mysql_query($query);
, который получает свои значения из поиска адреса.
Кто-нибудь имеет опыт решения этой или подобной проблемы?
edit: обнаружил первую ошибку: пропустил запятую между lng и (6371 ...
если я вставлю это непосредственно в phpmyadmin (заменив '% s' реальными значениями), я получу желаемый результат, поэтому я предполагаю, что проблема заключается в передаче переменных в SQL;
надеюсь, что это поможет сузить его.