无法更新MySQL数据库中的一个单元格?

时间:2018-06-17 22:02:10

标签: javascript php mysql

我有一个用于游戏的谷歌地图网络应用程序,用户将点击谷歌地图标记,在弹出的窗口中进行选择,然后单击提交。它使用AJAX使用用户选择的信息更新数据库。数据库预先填充了加载的标记和GPS坐标的名称。在通过XML加载时,标记也相应地放置。

我在提交用户所选信息时无法更新一行。目前,用户可以选择并提交一些内容,但它会更新该行中所有标记的所有内容;当我只是想让它更新用户提交的相应标记的字段时。我不确定要使用的正确WHERE声明。这是我当前的SQL语句,我尝试更新名为quest的行。

mysqli_query($con, "UPDATE markers SET quest= '$questName'  WHERE markerName = '$markerName'");

以下是我的相关ajax.php

<?php 
include("connect.php");
require("call.php");

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();     
} else  {   

} 

$markerName = mysqli_real_escape_string($con, $_GET['markerName']);
$questName = mysqli_real_escape_string($con, $_GET['questName']);
$lat = mysqli_real_escape_string($con, $_GET['lat']);
$longg = mysqli_real_escape_string($con, $_GET['longg']);
mysqli_query($con, "UPDATE markers SET quest= '$questName'  WHERE markerName = '$markerName'");
mysqli_close($con);

这是我的相关调用文件:

// Iterate through the rows, adding XML nodes for each
while ($row = mysqli_fetch_assoc($result)) {
    global $dom, $node, $parnode;
    // ADD TO XML DOCUMENT NODE  
    $node    = $dom->createElement("marker");
    $newnode = $parnode->appendChild($node);
    $newnode->setAttribute("markerName", $row['markerName']);
    $newnode->setAttribute("quest", $row['quest']);
    $newnode->setAttribute("lat", $row['lat']);
    $newnode->setAttribute("longg", $row['longg']);
}

header("Content-type: text/xml");
echo $dom->saveXML();

对此问题的任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误消息告诉您在第7行查看ajax.php

确保markerName变量中有密钥$_GET

在调用markerName时尝试传递查询字符串ajax.php

<强>更新

确保数据库中存在指定markerName的记录。