使用AJAX调用PHP更新MySQL数据库没有做任何事情

时间:2013-06-04 14:42:49

标签: php ajax database json sql-update

我正在尝试使用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);

2 个答案:

答案 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要求您传递连接。

我不是那样做的。

当我直接将值传递给查询时,我发现了它。

非常感谢大家的帮助