php update将all设置为0,但对于某些id为1

时间:2014-08-30 09:42:39

标签: php mysql

基本上我有一个表单,其中包含数据库中所有行的复选框。 用户应该选择他/她想要的那个并提交该表格。 所以在数据库中我想设置所有行"可见"列为false但是选择为true的列。 我认为这应该有效:

$sql = "UPDATE `questions` 
    SET `visible` = false;
    SET `visible` = true WHERE ID={$radio}" ;

但我显然不会像这样运行多个SET。另外,php中没有if-else-like语句,对吧?

处理这个问题的好方法是什么?

2 个答案:

答案 0 :(得分:3)

您可以使用conditional statements

UPDATE `questions` 
SET `visible` = 
 CASE
   WHEN ID = '$radio' THEN true
   ELSE false
 END

此外,请确保在将用户输入粘贴到查询之前对其进行清理。

答案 1 :(得分:1)

我会这样做:

UPDATE `questions` 
SET `visible` = (ID = {$radio})

ID = $radio等于true时,visible设置为truevisible在所有其他情况下设为false