PHP没有切换

时间:2013-09-16 01:03:06

标签: php mysql

我有这段代码:

if ($row['locked'] == 0) {
    mysql_query("UPDATE questions SET locked=1 WHERE id='".$topic_id."'") or die('not working');
}
if ($row['locked'] == 1){
    mysql_query("UPDATE questions SET locked=0 WHERE id='".$topic_id."'") or die('not working');
}

它应该被锁定,但它只是将其设置为1.不是相反。

为什么?

3 个答案:

答案 0 :(得分:3)

为什么你不能这样做:

    mysql_query("UPDATE questions SET locked = NOT locked WHERE id='".$topic_id."'") or die('not working');

将直接切换locked列,您不需要if语句。

答案 1 :(得分:0)

为什么

因为$row['locked']等于零。

只需设置$row['locked'] = 1;

即可

在您的控制声明之前。

答案 2 :(得分:0)

顺便问一下,你从哪里得到$row['locked']?分享更多代码。

为什么不在查询中包含变量而不是编写条件语句?

例如:

$updateTo=!$row['locked'];

$query = "UPDATE questions SET locked='$updateTo' WHERE id='$topic_id'";

P.S。开始使用mysqliPDO准备好的陈述而不是旧的,已弃用的mysql_query


或者只是解决您的问题:

$row['locked']设置为 1 ;

这将例如触发按钮单击操作。

<强> PHP:

if(isset($_POST['submit'])) {

$row['locked'] = 1;

}

<强> HTML:

<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'>
<input type='submit' name='submit' value='post' />
</form>