如果存在行,则更新其他更新

时间:2014-10-22 05:00:11

标签: php mysql

我已经在堆栈溢出中看到了这个问题,但无论我采用哪种方式,我似乎都无法使其工作。让我首先展示我的代码

$result = $db->query("SELECT 1 FROM mybb_tnybracket WHERE tid = '$id' AND player1 IS NOT NULL AND player2 IS NULL");
if (mysqli_fetch_row($result)) {
        $query23 = $db->query("UPDATE mybb_tnybracket SET player1 = '$uidgt' WHERE tid = '$id'      AND player2 is NULL AND player1 is NULL ORDER BY ID LIMIT 1;")or die(mysqli_error());
    echo "update player 1"; 
} else {
        $query22 = $db->query("UPDATE mybb_tnybracket SET player2 = '$uidgt' WHERE tid = '$id' AND player1 IS NOT NULL AND player2 IS NULL LIMIT 1")or die(mysqli_error());
echo "update player 2"; 
}

}

以下是我的数据库的快速预览:

https://i.gyazo.com/1a2049d4a24f73bc8de3e0be84e98ec8.png

你可以看到player1和player2都是null。但是,一旦我使用我的代码,它应该首先更新播放器1。然后我的if语句获取任何表格,其中玩家1有一个值而玩家2仍然为空,那么它就可以填充玩家2.但是,这不会发生,我尝试注册的所有内容都是文本“更新播放器2“但没有任何反应。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果我没有误解你正在尝试做什么,我认为这是一个简单的查询

$result = $db->query("UPDATE mybb_tnybracket SET player1 = '$uidgt',player2 = '$uidgt' WHERE tid = '$id' AND player2 is NULL AND player1 is NULL");

会正常工作。