これは簡単なように思えますが、検索してもわかりません。PHP を使用して、いくつかのフィールドをブール スイッチとして設定する MySQL データベースを更新しています。サイトのトリガーはチェックボックスです。ユーザーがチェックボックスをオンにすると値は 1 に設定され、オフにすると値はゼロになります。問題は、フォームを送信すると、チェックボックスが設定されているとデータベースが正常に更新されますが、フィールドの値がゼロに更新されず、単に無視されることです。変数が実際にゼロに設定されていることを確認するために、設定されていないときに値をエコーアウトしました。テキストボックスをクリアして何も送信しようとすると、同様の問題が発生します。MySQL は単純にそれを無視し、フィールドをクリアしません。何か不足していますか?
私が使用しているコードの例を次に示します。
<?php
if ($_POST) {
if (isset($_POST['box1'])) {
$box1 = $_POST['box1'];
}
else {
$box1 = 0;
}
$query = "UPDATE table SET box1 = '{$box1}'";
$result = mysqli_query($dbc, $query);
}
?>
<form method="post" action="">
<input type="checkbox" name="box1"> Box 1
</form>