Php 根据是否选中复选框,将复选框数据插入数据库

Php 根据是否选中复选框,将复选框数据插入数据库,php,Php,HTML: 无论是否选中,它总是插入一个N。我想如果它插入y的基础上,如果复选框是选中的。我还尝试将value=“n”放在if后面的else中,但不管怎样,它总是将n放在else中(当我这样做时,我删除了if前面的value=“n”),我的意思如下: $sql=("INSERT INTO table (sale) VALUES ('" . $_GET['saleItem'] . "')"); if (!(mysql_query($sql))) { die ("could not query: "

HTML:

无论是否选中,它总是插入一个N。我想如果它插入y的基础上,如果复选框是选中的。我还尝试将value=“n”放在if后面的else中,但不管怎样,它总是将n放在else中(当我这样做时,我删除了if前面的value=“n”),我的意思如下:

$sql=("INSERT INTO table (sale) VALUES ('" . $_GET['saleItem'] . "')");
if (!(mysql_query($sql))) { die ("could not query: " . mysql_error()); }
value=“n”/

您可以将html更改为:

<input type="checkbox" name="saleItem" <?php if(isset($_GET['saleItem'])) { ?> checked="checked" value="y" <?php } else { ?> value="n" <?php } ?> />
然后您的SQL语句应该如下所示:

$is_checked = (isset($_GET['saleItem']) ? 'y' : 'n');

如果在提交表单时未选中复选框,则浏览器不会将其值发送到服务器。因此,将其值更改为
1
,然后检查服务器端是否存在,这是确定复选框状态的最佳方法。

复选框只能有一个值。根据是否选中属性来更改
属性的尝试无效

以下是复选框的更新HTML:

$sql=("INSERT INTO table (sale) VALUES ('" . $is_checked . "')"); 

通过这种方式,如果没有返回任何内容,PHP将在数据库中放置一个“N”——即,如果未选中复选框。

如果未选中,浏览器将不会发送输入。如果未选中,我希望它向我的数据库发送一个N,如果选中,则发送一个Y。并且您的sql语句为$sql=(“$INSERT into table(sale)VALUES(‘“)”。“)”;谢谢,我在回答中补充了这个。绝对完美,有效。非常感谢!我现在明白了。
$is_checked = (isset($_GET['saleItem']) ? 'y' : 'n');
$sql=("INSERT INTO table (sale) VALUES ('" . $is_checked . "')"); 
<input type="checkbox" name="saleItem" value="Y" <?php if( isset( $_GET['saleItem'] ) ){ ?> checked="checked" <?php } ?> />
$saleItemValue = "N";
if( array_key_exists( 'saleItem', $_GET ) && $_GET['saleItem'] == 'Y' ){
    $saleItemValue = "Y";
}

$sql = "INSERT INTO table (sale) VALUES ( '$saleItemValue' )";
if( !mysql_query($sql) ){
    die( "could not query: " . mysql_error() );
}