Я пытаюсь получить местоположение (широта, долгота) из приложения Android и вставить в базу данных с помощью php, а затем извлечь данные в радиусе 10 м.
Проблема в том, что когда я тестирую код с помощью смартфона (локальный тест в порядке), данные неправильно вставлены. В таблице «usergps» есть 3 столбца (имя, широта, долгота), и после того, как я проверил код, (, 0, 0) вставлен.
Вы можете проверить PHP-код ниже? Если это правильно, я думаю, что я должен проверить код Java.
<?php if(isset($_POST['name']) && $_POST['name'] != '') { require_once("include/db_info.php"); $s=mysql_connect($SERV,$USER,$PASS) or die("fail to connect to mysql"); mysql_select_db($DBNM); $lat = $_POST['lat']; $lon = $_POST['lon']; $name = $_POST['name']; $result= mysql_query("SELECT * FROM usergps WHERE name = '".$name."'"); $row = mysql_num_rows($result); if($row == 0) { mysql_query("INSERT INTO usergps (name,latitude,longitude) VALUES ('".$name."', '".$lat."', '".$lon."')"); } else { mysql_query("UPDATE usergps SET latitude = '".$lat."' WHERE name = '".$name."'"); mysql_query("UPDATE usergps SET longitude = '".$lon."' WHERE name = '".$name."'"); } $query = mysql_query("SELECT *, ( 6371 * acos( cos( radians('".$lat."') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('".$lon."') ) + sin( radians('".$lat."') ) * sin( radians( latitude ) ) ) ) AS distance FROM usergps HAVING distance <= 0.01 ORDER BY distance ASC"); if(!$query) die ('Unable to run query:'.mysql_error()); $numpeople = mysql_num_rows($query); echo json_encode($numpeople); } else { $response["error"] = TRUE; $response["error_msg"]= "Required parameter 'name' is missing!"; echo json_encode($response); } ?>