0

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

2 回答 2

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上进行查询,看看它是否实际返回任何内容。

于 2013-06-04T14:48:09.083 回答
0

mysqli_query要求您通过连接。

我不是那样做的。

当我直接将值传递给查询时,我想通了。

非常感谢大家的帮助

于 2013-06-04T15:10:45.607 回答