我有一个用于游戏的谷歌地图网络应用程序,用户将点击谷歌地图标记,在弹出的窗口中进行选择,然后单击提交。它使用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();
对此问题的任何帮助都将不胜感激。
答案 0 :(得分:0)
错误消息告诉您在第7行查看 ajax.php
。
确保markerName
变量中有密钥$_GET
。
在调用 markerName
时尝试传递查询字符串ajax.php
。
<强>更新强>
确保数据库中存在指定markerName
的记录。