如何使用html表单将php地理编码地址插入mysql数据库

时间:2019-04-23 20:46:01

标签: php mysql google-maps geocoding

我如何将php地理编码的地址插入到mysql数据库中,而我却拥有ID,地址,纬度,经度之类的文件,而且我也不想设置硬编码的数据,我想通过html表单发送它,但是表单应该只有1个文本输入,仅用于地址,应存储在数据库的不同字段中,例如:例如:我在输入字段中输入地址,应将其插入数据库地址字段,并且纬度和经度也应在搜索时同时存储超过2天,但未找到任何结果,将不胜感激。

1 个答案:

答案 0 :(得分:0)

尽管这个问题非常...关于您将获得的答案抱有很大的抱负...我将列出一些资源来帮助您入门...

有关如何开始进行表单处理的信息,请参考W3Schools。 https://www.w3schools.com/php/php_forms.asp

请参考MySQLi以开始创建连接并执行MySQL数据库的“插入”语句 https://www.php.net/manual/en/book.mysqli.php

编辑:显然,链接不是一个正确的答案...所以这是一个[正确的] [edit2:但对问题不准确]答案...

<?php 
if(isset($_POST) && count($_POST) > 0){
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
$stmt = mysqli_prepare( $link, "INSERT INTO Location(Address, Latitude, Longitude) VALUES(?, ?, ?)");\
$stmt->bind_param("sdd", $_POST['Address'], $_POST['Latitude'], $_POST['Longitude']);
$stmt->execute();
}
?>
<html>
<body>
<form action='#' method='POST'>
<input name='Address' type='text' />
<input name='Latitude' type='text' />
<input name='Longitude' type='text' />
</form>
</body>
</html>

编辑2:这是Google的地理编码(您需要拥有Google Api密钥,可在此处找到:https://cloud.google.com/maps-platform/?apis=maps

  <?php
  if(isset($_POST) && count($_POST) > 0){
  //Initate Curl
  $ch = curl_init();
  //GeoCoding Address
  $Google_API_KEY = "*****************";
  $url = "https://maps.googleapis.com/maps/api/geocode/json?key={$Google_API_KEY}&address=" . urlencode($_POST['Address']) . "&sensor=false";
  //Handle the Curl Params
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  //Execute Curl and Decode JSON
  $response = json_decode(curl_exec($ch), true);
  //var_dump($response);
  $geometry = $response['results'][0]['geometry'];
  $longitude = $geometry['location']['lat'];
  $latitude = $geometry['location']['lng'];
  $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
  $stmt = mysqli_prepare( $link, "INSERT INTO Location(Address, Latitude, Longitude) VALUES(?, ?, ?)");
  $stmt->bind_param("sdd", $_POST['Address'], $latitude, $longitude );
  $stmt->execute();
  }
  ?>
  <html>
  <body>
  <form action='tester.php' method='POST'>
  <input name='Address' type='text' />
  </form>
  </body>
  </html>

请简化一下

编辑3:我不确定为什么它太宽泛。但是,我想说的是,这个问题缺少任何尝试的尝试……但是,如果他们确实确实尝试进行了两天,那么我们只需解码一下用户所说的话即可。

(1)如何将php地理编码的地址插入mysql数据库

  • 在我的代码中,我演示了如何向mysql数据库中插入经过地理编码的地址

(2)我有ID,地址,纬度,经度

  • 请注意哪些字段是必需的

(3)我也不想设置经过硬编码的数据,我想通过html表单发送它,但是表单应该只有1个textinput仅用于地址

  • 关于流应该是什么以及在html中输入1个文本的要求的注释

(4),它应存储在数据库的不同字段中,例如:例如:在输入字段中输入地址,应将其插入数据库地址字段以及纬度和经度

  • 在我的代码中,它确实会查找地址,然后将纬度和经度输入数据库中

(5)也应该在我搜索它的同时存储

  • 在我的代码中确实如此

(6)超过2天,但未找到任何结果,将不胜感激。

  • 寻求帮助。别担心,我让你<3

由于这是Internet上寻求编码帮助的最佳场所,我想通了,为什么不帮助[新手]用户呢?无论如何,我相信我确实回答了用户提出的[歧义]问题