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']
等于零?哇。那很有效!我不知道那是真的。谢谢