2013-08-19 3 views
-1

У меня есть приложение для Android, отправляющее gps-координаты за 1 секунду. Интервал к php, а затем mysql на сервере. У них есть сайт, на котором местоположение устройства можно отслеживать в реальном времени на картах Google. Проблема заключается в том, что когда я вызываю php-скрипт для запроса новых координат в mysql, он работает идеально в первый раз и дает мне последние координаты для использования на картах google, но после первого цикла он продолжает givimg мне такое же значение, даже если база данных обновлена.Realtime mySQL, PHP API API Карт Google

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Horse Tracker © 2013 Abiapps</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <link type="text/css" href="style.css" rel="stylesheet" media="all" /> 
     <script type="text/javascript"src="http://maps.google.com/maps/api/js?********&sensor=false"></script> 
     <script type="text/javascript" src="map.js"></script> 
     <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    </head> 

<body> 
    <h1>Horse Tracker © 2013 Abiapps </h1> 
    <input type="button" value="getValues" id="getValues" /> 
    <input type="button" value="changeValues" id="changeValues" /> 
    <div id="map"></div> 
    <script> 
    (function() { 
    window.onload = function() { 

     var mapDiv = document.getElementById('map'); 
     var latlng = new google.maps.LatLng(35.694094,23.683620); 
     var options = { 
      center: latlng, 
      zoom: 4, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 

      mapTypeControl: true, 
      navigationControl: true, 
      navigationControlOptions: { 
       position: google.maps.ControlPosition.TOP_RIGHT 
      }, 
      mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
      }, 
      streetViewControl: false, 
      backgroundColor: '#0000ff' 

     }; 




     var map = new google.maps.Map(mapDiv, options); 
      document.getElementById('getValues').onclick = function() { 
      alert('Current Zoom level is ' + map.getZoom()); 
      alert('Current center is ' + map.getCenter()); 
      } 

      document.getElementById('changeValues').onclick = function() { 
       var latLng = new google.maps.LatLng(<?php include 'getgps.inc.php';?>); 
      map.setCenter(latLng); 
      } 

      var a = 1; 
      function autoUpdate() { 
      a = a; 
      var latLng = new google.maps.LatLng(<?php include 'getgps.inc.php';?>); 
      map.setCenter(latLng); 
      alert('<?php include 'getgps.inc.php';?>'); 
      setTimeout(autoUpdate, 1000); 
      } 

     autoUpdate(); 
    } 
})(); 


    </script> 

</body> 
</html> 

и код PHP ..

<?php 

$host="localhost"; 
$username="*****"; 
$password="*****"; 
$db_name="horsetrack"; 
$tbl_name="gps"; // 
$body = ""; 
// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect server "); 
mysql_select_db("$db_name")or die("cannot select DB"); 
$sql="SELECT * FROM $tbl_name ORDER BY id DESC LIMIT 1 "; 
$result=mysql_query($sql); 
while($rows=mysql_fetch_array($result)){ 
     $id = $rows['id']; 
     $datetime = $rows["datetime"]; 
     $Rname = $rows["rider"]; 
     $Rlat = $rows["lat"]; 
     $Rlng = $rows["lng"]; 

$body = $Rlat.','.$Rlng; 
} 
echo $body; 

mysql_close(); //close database 
?> 

им получить тот же результат в боевой готовности(); как новый запрос, даже если я добавляю строку в базу данных

ответ

2

Вы понимаете, что ваш PHP-код выполняется на сервере, а не на клиенте? Когда эта линия выполнена:

alert('<?php include 'getgps.inc.php';?>'); 

вы в конечном итоге с чем-то вроде

alert('foo'); 

встроено Javascript вы посылаете к клиенту. Когда ваша функция autoUpdate() выполняется в клиенте, код PHP составляет LONG с тех пор, как ушел и НИКОГДА не был выполнен клиентом, так что текст 'foo' никогда не изменяется.

Вы должны использовать вызов AJAX для получения копии FRESH этого файла каждый раз, а не просто повторно оповещать о том, что было встроено в страницу при ее создании.

+0

Любые хорошие книги на ajax, которые я мог прочитать? –

+0

есть тонны вопросов/ответов ajax на этом сайте и множество обучающих руководств. –