Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP不切换_Php_Mysql - Fatal编程技术网

PHP不切换

PHP不切换,php,mysql,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 work

我有以下代码:

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。而不是相反

为什么?

为什么

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

只需将
$row['locked']=1


在您的控制语句之前。

顺便问一下,您的
$row['locked']
从哪里获得?共享更多代码

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

例如:

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

$query = "UPDATE questions SET locked='$updateTo' WHERE id='$topic_id'";
请注意,开始使用
mysqli
PDO
准备好的语句,而不是旧的、不推荐的
mysql\u查询


或者只是为了解决您的问题:

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

$row['locked'] = 1;

}
<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'>
<input type='submit' name='submit' value='post' />
</form>
$row['locked']
设置为1

例如,这将通过单击按钮触发操作

PHP:

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

$row['locked'] = 1;

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

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

$row['locked'] = 1;

}
<form action='<?php echo $_SERVER['PHP_SELF'];?>' method='post'>
<input type='submit' name='submit' value='post' />
</form>
为什么你不能:

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

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

行['locked']
的值是多少?另外,你应该使用mysqli而不是mysql。你怎么知道
$row['locked']
等于零?哇。那很有效!我不知道那是真的。谢谢