2017-01-19 8 views
-1

私のコードで動作するようにこの例をGoogleから取得しようとしています。Googleストアのサンプルロケータ

https://developers.google.com/maps/articles/phpsqlsearch_v3

それは私がやっている他のクエリを容易にする私はMeekro PHP MySQLライブラリを使用しています。

http://meekro.com/

これは私にエラーを与えている部分です。

$query = sprintf("SELECT address, name, lat, lng, (3959 * 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 , 20", 
    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); 

私は次のコードを使用しています:私はphpMyAdminの中でクエリを実行しようとした場合でも

?lat=37&lng=-122&radius=25 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '37'')) * cos(radians(lat)) * cos(radians(lng) - radians(''-122'')) + si' at line 1 

:私は常に、以下のパラメータを使用して、次のエラーを取得

$results = DB::query("SELECT address, name, lat, lng, (3959 * 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 , 20", 
    $center_lat, 
    $center_lng, 
    $center_lat, 
    $radius); 

を私は同じエラーが発生します。

答えて

1

% sのarroundの引用符の削除:

$results = DB::query("SELECT address, name, lat, lng, (3959 * 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 , 20", 
    $center_lat, 
    $center_lng, 
    $center_lat, 
    $radius); 
+0

私の問題を解決しました。なぜGoogleのコードで動作するのですが、私のものではないのか説明できますか? – ricardolobo

+0

私は変数$ center_lat、$ center_lng、$ radiusをどのように宣言するかを知る必要があります。 – Yoleth

関連する問題