我正在尝试使用PHP和AJAX更新数据库中的字段
我已经测试并发现正在发送正确的数据,但处理更新的PHP无法正常工作。
所有这一切都是我在条件中获得else
响应。
我需要根据用户输入更新数据库。
就像我说的那样,我得到的回应是else
回复。
$youruname = $_POST['youruname'];
$selectedplayer = $_POST['selectedplayer'];
$selPlayerUname = $_POST['selPlayerUname'];
$flag = "";
$itStatus = "";
$checkit = mysqli_query($conn,"SELECT it FROM login WHERE uname='$selPlayerUname'");
while($row = mysqli_fetch_array($checkit))
{
$itStatus = $row["it"];
}
if($itStatus == "not it")
{
mysqli_query("UPDATE login SET it = CASE WHEN uname = '$youruname' THEN 'not it' ELSE 'it' END WHERE uname IN ('$youruname', '$selPlayerUname')");
$flag = "success";
}
else if($itStatus == "it")
{
$flag = "nope";
}
else
{
$flag = "error";
}
echo json_encode(array("message" => $flag, "tagged" => $selectedplayer));
mysqli_free_result($checkit);
mysqli_close($conn);
答案 0 :(得分:1)
这里有些令人困惑的事情。你有一个循环和后循环条件。你的更新查询不应该在一个循环内:
while($row = mysqli_fetch_array($checkit))
{
$itStatus = $row["it"];
if($itStatus == "not it")
{
mysqli_query("UPDATE login SET it = CASE WHEN uname = '$youruname' THEN 'not it' ELSE 'it' END WHERE uname IN ('$youruname', '$selPlayerUname')");
$flag = "success";
}
else if($itStatus == "it")
{
$flag = "nope";
}
else
{
$flag = "error";
}
}
您的 $ iStatus 从循环中获取数据库中的最后一个值,然后检入条件
如果以上版本无效,请检查 $ _ POST 值,看看其中任何一个是空白还是 null 并执行查询 PHPMyAdmin 查看它是否实际返回任何内容。
答案 1 :(得分:0)
mysqli_query
要求您传递连接。
我不是那样做的。
当我直接将值传递给查询时,我发现了它。
非常感谢大家的帮助