我有这段代码:
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.不是相反。
为什么?
答案 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。开始使用mysqli
或PDO
准备好的陈述而不是旧的,已弃用的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>