for loop'数据库中的值


Save 'for loop' values in the database

我有一个名为' locations '的mySQL数据库和名为' places '的数据库表。我的数据库如下

----------------------
ID|place|Distance
----------------------
11 |AA | 0
11 |BB | 0
11 |CC | 0
11 |DD | 0
22 |AA | 0
22 |DD | 0 
我开发了一个PHP代码来查找距离。内容如下
for (var i = 0; i < route.legs.length; i++) {
    var dist = parseFloat(route.legs[i].distance.text);
    summaryPanel.innerHTML += 'From<input id="start_address" type="text"  size=10 value="'+route.legs[i].start_address+'">to ';
    summaryPanel.innerHTML += '<input id="end_address" type="text"  size=10 value="'+route.legs[i].end_address+'">';
    summaryPanel.innerHTML += '=<input id="distance" type="text"  size=10 value="'+dist+'"><br><br>';

这工作完美,这个' for循环'的输出是这样的。(有一个名为"ID"的文本框,它显示了此输出的ID号)

ID-1111
From AA to BB = 40
From BB to CC=60
From CC to DD = 20

现在我想做的是,当点击一个"保存"按钮,在数据库中的距离列应该更新,并保存这些距离为相关的"ID"answers"地方"。最终输出应该是这样的:

------------------------------
ID  | place | Distance
1111 | AA | 01111 | BB | 40
1111 | CC | 60
1111 | DD | 20
2222 | AA | 0
2222 | DD | 0

我试了几千次了。但是数据库不会像上面那样更新。这就是到目前为止我已经尝试。

Script.js
---------

$(document).ready(function(){
    $("#save").click(function(){
        var id = $("#id").val();
        var start_address = $("#start_address").val();
        var end_address = $("#end_address").val();
        var distance = $("#distance").val();
        var dataString = 'id1='+ id +'start_address1='+ start_lat + &end_address1='+ end_lat + '&distance1='+ distance;
        $.ajax({
            type: "POST",
            url: "map.php",
            data: dataString,
            cache: false,
            success: function(result){
                //alert(result);
            }
        });
    }
    return false;
    });
}) 

Map.php

<?php
$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server..
$db = mysql_select_db("locations", $connection); // Selecting Database
$id2=$_POST['id1'];
$start_address2=$_POST['start_address1'];
$end_address2=$_POST['end_address1'];
$distance2=$_POST['distance1'];
$query=mysql_query("UPDATE places SET distance=’$distance’ WHERE id=’$id2’” && place=’$end_address2’ ");
echo "Updated successfully";
mysql_close($connection); // Connection Closed
?>

您的查询,

$query=mysql_query("UPDATE places SET distance=’$distance’ WHERE id=’$id2’” && place=’$end_address2’ ");

$query = mysql_query("UPDATE places SET distance='$distance' WHERE id='$id2' AND place='$end_address2'");

注意到你是如何使用反引号而不是单引号吗?由于某些原因,您在查询中间随机关闭了查询引号。

编辑1

你的代码很容易出现SQL injection,你仍然在使用MySQL,即使它已经被弃用,你应该使用MySQLiPDO和准备好的语句。

编辑2

您还可以使用or die(mysql_error());查看正在发生的错误。