自动插入到mysql数据库每2秒

Auto insert into mysql database every 2sec

本文关键字:数据库 2秒 mysql 插入      更新时间:2023-09-26

我有一个获取用户经纬度的代码。这是我用来获取时间和长度的代码:

function showlocation() {
    navigator.geolocation.watchPosition(callback);
}
function callback(position) {
    document.getElementById('latitude').innerHTML = position.coords.latitude;
    document.getElementById('longitude').innerHTML = position.coords.longitude;
}

我想每隔2秒插入用户的长度和长度

这是一个工作示例,您需要使用它来满足您的需求:

HTML/JavaScript/jQuery

index . html

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
    </script>
  </head>
  <body>
    <script>
      window.setInterval(function() {
        showlocation();
      }
                         , 2000);  // 2000==2 seconds
      function showlocation() {
        navigator.geolocation.watchPosition(callback);
      }
      function callback(position) {
        var lat = position.coords.latitude;
        var lon = position.coords.longitude;
        document.getElementById('latitude').innerHTML = lat;
        document.getElementById('longitude').innerHTML = lon;
        $.post('processor.php', 'lat=' + lat + '&lon=' + lon, function(response) {
          //alert(response);
        }
              );;
      }
    </script>
    Latitude: <span id="latitude"></span>
    <br/> 
    Longitude: <span id="longitude"></span>
  </body>
</html>
第二:

processor.php

    <?php
    $lat=$_POST["lat"];
    $lon=$_POST["lon"];
    // insert into database
    $conn = mysqli_connect("localhost","user","pass","database");
    $sql="INSERT INTO location_tbl (latitude, longitude) VALUES ('$lat','$lon')";  
    // You might need some conditional insert here and for every 2 seconds you will get lots of records in database!
    mysqli_query($conn,$sql) or die(mysqli_error($conn));
   // return 'done';
    ?>

这篇关于堆栈溢出的文章可能是一个很好的参考

请注意,它需要用户权限才能共享位置,否则它将无法正常工作。

提供的解决方案仅用于教育目的

还有许多其他实用的方法可以达到问题的目的。

为什么你不使用一些PHP IP地理位置类/API,并重新记录经度,纬度一旦改变?