Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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
如何使用html表单将php地理编码地址插入mysql数据库_Php_Mysql_Google Maps_Geocoding - Fatal编程技术网

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

如何使用html表单将php地理编码地址插入mysql数据库,php,mysql,google-maps,geocoding,Php,Mysql,Google Maps,Geocoding,如何将php地理编码地址插入mysql数据库我有id、地址、纬度等文件,经度,还有我不想设置硬编码的数据,我想通过html表单发送,但是表单应该只有一个textinput作为地址,它应该存储在数据库的不同字段中,比如ex:i在输入字段中输入地址,它应该插入到数据库地址字段中,纬度和经度也应该是存储在同一时间,我搜索了超过2天,但没有结果发现任何帮助将不胜感激 虽然这个问题非常。。。对你将得到的答案雄心勃勃。。。我将列出一些资源来帮助您开始 有关如何开始处理表格,请参考W3S学校 请参考MySQ

如何将php地理编码地址插入mysql数据库我有id、地址、纬度等文件,经度,还有我不想设置硬编码的数据,我想通过html表单发送,但是表单应该只有一个textinput作为地址,它应该存储在数据库的不同字段中,比如ex:i在输入字段中输入地址,它应该插入到数据库地址字段中,纬度和经度也应该是存储在同一时间,我搜索了超过2天,但没有结果发现任何帮助将不胜感激

虽然这个问题非常。。。对你将得到的答案雄心勃勃。。。我将列出一些资源来帮助您开始

有关如何开始处理表格,请参考W3S学校

请参考MySQLi,开始创建连接并执行MySQL数据库的insert语句

编辑:显然链接不是正确的答案。。。所以这里有一个[正确的][编辑2:但不准确的问题]答案

<?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:这是谷歌的地理编码,你需要一个谷歌Api密钥,可以在这里找到:

请原谅我的简化

编辑3:我不知道为什么这太宽泛了。然而,我想说的是,这个问题是错过了任何尝试,他们是什么尝试。。。然而,如果他们真的尝试了两天,那么让我们来解码用户所说的

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

在我的代码中,我演示了如何将地理编码地址插入mysql数据库 2我有像id、地址、纬度、经度这样的字段

请注意哪些字段是必需的 3另外,我不想设置硬编码的数据,我想通过html表单发送数据,但表单应该只有1个文本输入,仅用于地址

关于流程应该是什么以及在html中输入1个文本的要求的说明 4并且它应该存储在数据库中的不同字段中,比如ex:i在输入字段中输入地址,它应该插入到数据库地址字段中,以及纬度和经度

在我的代码中,它确实会查找地址,然后将纬度和经度输入数据库 5也应该在我搜索的同时存储它

在我的代码中是这样的 6超过2天,但未发现任何结果。如有任何帮助,将不胜感激


请求帮助。别担心,我在两天后找到了你,你根本找不到任何起点?在这里提问之前,您应该能够并且应该进行一些尝试。请注意,该用例可能会违反谷歌地图平台的服务条款,请参阅以了解更多信息。链接列表不是答案不幸的是,不是。OP表示该表单仅收集地址,不是经纬度。老实说,这应该被删除,因为OP的问题没有包含足够的信息来提供高质量的答案。OP是新的。。。我会重写我的答案,包括地理编码。。。给我一分钟,你不应该试图回答这么广泛的问题。请看我的编辑。如果你真的认为我不应该回答这个问题。。。也许我会承担否决票的费用来帮助新用户。
  <?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>