首页 > 解决方案 > 将复选框值更新到数据库

问题描述

我想用 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”更新到数据库,我在那里做错了什么?

标签: phpmysql

解决方案


当然,页面第一次渲染,$csgoac是0,因为isset($_POST["csgo"])是假的。

如果选中该复选框,然后提交表单,则为$csgoac1。

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

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

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

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

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


推荐阅读