我要用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”,我在那里做错了什么?
答案 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
来获得其他反馈。
也许添加一些反馈/错误检查以获取尽可能多的信息,以便您了解真正的情况。