无法使用PHP在数据库中保存数据

时间:2017-11-07 18:47:31

标签: javascript php mysql mysqli

我使用以下代码在PHP中保存数据。我想保存的数据是:

Latitudes:"[47.99267886541119,47.81223227508317]"

Longitudes:"[19.403228759765625,19.015960693359375]"

请帮我纠正代码中的任何错误。

 <?php
  $con = mysqli_connect('localhost','root','');
if(!$con)
{
 echo 'Not Connected To Server';
}
 if (!mysqli_select_db ($con,'test'))
{
  echo 'Database Not Selected';
  }
  for ($i=0;$i<count($_POST['Latitudes']);$i=$i+1)
  {
  $Latitude = $_POST['Latitudes'][$i];
   }
    for ($i=0;$i<count($_POST['Longitudes']);$i=$i+1)
   {
    $Longitude= $_POST['Longitudes'][$i];
   }
   $sql = "insert into polyline (lat,lng) values 
      ('$Latitude','$Longitude')";

 if (!mysqli_query($con,$sql))
 {
   echo 'Not Inserted';
  }

 else
  {
    echo 'Inserted Successfully';
  }

   header("refresh:100; url=Final edited copy.html");


  ?>

以下是HTML代码:

var polyOptions = {
    geodesic: true,
    strokeOpacity: 1.0,
    strokeWeight: 2,
    }
    var poly=new google.maps.Polyline(polyOptions);
    poly.setMap(map);
    var evtListnr = google.maps.event.addListener(map, "click", function(event){
    var path = poly.getPath();
     if (poly.getPath().getLength() == 1) {
  google.maps.event.removeListener(evtListnr);
}
    path.push(event.latLng);
    var coordinates_poly=poly.getPath().getArray();
    var lat_poly = [];
    var lng_poly = [];
    for(var i = 0; i <coordinates_poly.length; i++){
    lat_poly.push(coordinates_poly[i].lat());
    lng_poly.push(coordinates_poly[i].lng());
    }
    var str_lat_poly=JSON.stringify(lat_poly);
    var str_lng_poly=JSON.stringify(lng_poly);
    document.getElementById("data1").value= 'Latitudes:"'+str_lat_poly+'"';
    document.getElementById("data2").value= 'Longitudes:"'+str_lng_poly+'"';
    });
    }
</script>
<form action="insert.php" method="POST">
<br/><input name="Latitudes" type="text" id="data1" size="100" value='' readonly/><br/>
<br/><input name="Longitudes" type="text" id="data2" size="100" value='' readonly/><br/>
<input type="submit">
  </form>

2 个答案:

答案 0 :(得分:0)

每次循环迭代时,您正在重置$ Latitude和$ Longitude值。你应该使用:

$Latitude .= $_POST['Latitudes'][$i]; // And some logic to add comma till last value is reached.

答案 1 :(得分:0)

问题

POST值(即imap_dbl(mylist, ~ mean(.x)) ## will return a named numeric vector. $_POST['Longitudes']是字符串,而不是数组。

请参阅this phpfiddle中的证据。

解决方案

有多种方法可以处理 - 一些例子包括:

  • 使用2个(或更多)文本输入(即$_POST['Latitudes']标签)和支持数组语法的属性(有关详细信息,请参阅PHP.net HTML FAQ):

    <input>
  • 解析这些字符串 - 例如正则表达式(可能很麻烦)