更新复选框值到数据库

时间:2020-02-15 12:23:06

标签: php mysql

我要用1还是0更新我的数据库条目,取决于是否选中它。

我当前的代码如下所示(只有一个复选框,其他复选框与其他名称相同)

<form method="post" action="" name="form">
  <label class="switch"><input type="checkbox" name="csgo" value="1"><span class="slider"></span></label> CSGO;
  <input type="submit" value="Save" class="btn btn-primary" name="submit">
 <?php
   $csgoac = isset($_POST["csgo"]) ? $_POST["csgo"] : 0;
   $sql = "UPDATE Users SET csgoactive='".$csgoac."' WHERE ID='1'";
   mysqli_query($db, $sql);
 ?>
</form>

我在查询之前用echo $csgoac;测试了它,输出是checked = 1而不是checked = 0

现在使用查询,它只是将数据库更新为“ 0”,我在那里做错了什么?

1 个答案:

答案 0 :(得分:0)

当然,第一次呈现页面时,$csgoac为0,因为isset($_POST["csgo"])为假。

如果选中此复选框,然后提交表单,则$csgoac将为1。

问题就变成了:mysqli_query($db, $sql);的结果是什么?

您是否正在获取/检查所有可用的反馈?如果php.ini中的display_errors为Off,则浏览器中将没有反馈,但是php错误日志中可能存在错误。 (例如,在代码段中,$db未定义,因此mysqli_query($db, $sql);失败,而Undefined variable: db。)

如果更新未成功,mysqli_query($db, $sql);将返回FALSE$db->error应该告诉您遇到了什么错误。

您还可以使用mysqli_stmt_affected_rows来获得其他反馈。

也许添加一些反馈/错误检查以获取尽可能多的信息,以便您了解真正的情况。