Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实时mySQL、PHP谷歌地图API更新_Php_Javascript_Google Maps Api 3 - Fatal编程技术网

实时mySQL、PHP谷歌地图API更新

实时mySQL、PHP谷歌地图API更新,php,javascript,google-maps-api-3,Php,Javascript,Google Maps Api 3,我有一个android应用程序在1秒内发送gps坐标。间隔到php,然后是服务器上的mysql。我有一个网站,可以在谷歌地图上实时跟踪设备的位置。问题是,当我调用php脚本在mysql中查询新坐标时,它第一次运行得非常完美,并为我提供了在google maps上使用的最新坐标,但在第一次循环之后,它会继续为我提供相同的值,即使数据库已经更新 <html xmlns="http://www.w3.org/1999/xhtml"> <head>

我有一个android应用程序在1秒内发送gps坐标。间隔到php,然后是服务器上的mysql。我有一个网站,可以在谷歌地图上实时跟踪设备的位置。问题是,当我调用php脚本在mysql中查询新坐标时,它第一次运行得非常完美,并为我提供了在google maps上使用的最新坐标,但在第一次循环之后,它会继续为我提供相同的值,即使数据库已经更新

    <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>

马追踪器©2013
马追踪器©2013
(功能(){
window.onload=函数(){
var mapDiv=document.getElementById('map');
var latlng=新的google.maps.latlng(35.694094,23.683620);
变量选项={
中心:拉特林,
缩放:4,
mapTypeId:google.maps.mapTypeId.ROADMAP,
mapTypeControl:true,
导航控制:对,
导航控制选项:{
位置:google.maps.ControlPosition.TOP\u右
},
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单
},
街景控制:错误,
背景颜色:“#0000ff”
};
var map=new google.maps.map(mapDiv,options);
document.getElementById('getValues')。onclick=function(){
警报('当前缩放级别为'+map.getZoom());
警报('当前中心为'+map.getCenter());
}
document.getElementById('changeValues')。onclick=function(){
var latLng=new google.maps.latLng();
地图设置中心(latLng);
}
var a=1;
函数自动更新(){
a=a;
var latLng=new google.maps.latLng();
地图设置中心(latLng);
警报(“”);
设置超时(自动更新,1000);
}
自动更新();
}
})();
还有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
?>


我在alert()中得到相同的结果;作为第一个查询,即使我将行添加到数据库中,您是否意识到您的PHP代码是在服务器上执行的,而不是在客户机上执行的?执行此行时:

 alert('<?php include 'getgps.inc.php';?>');
嵌入发送到客户端的javascript。当在客户机中执行
autoUpdate()
函数时,PHP代码自消失后LONG,并且从未被客户机重新执行,因此
'foo'
文本从未更改


每次都需要使用AJAX调用获取该文件输出的新副本,而不是简单地在生成页面时重新通知页面中嵌入的内容。

该网站上有大量AJAX问题/答案,以及大量googleable教程。
 alert('foo');