在php中将数据从选中的复选框保存到数据库中的一行

Posted

技术标签:

【中文标题】在php中将数据从选中的复选框保存到数据库中的一行【英文标题】:Saving data from checked checkboxes to one row in the database in php 【发布时间】:2014-09-05 05:36:57 【问题描述】:

如何保存已在复选框中选中并将插入到数据库中的一行的数据?例如,用户单击两个复选框(红色和蓝色)。单击保存按钮时,红色和蓝色的值将保存到 Products 表中的一行(颜色)。

这是我的html代码

<form action="" method="post">
        <h3>Colors:</h3>
        <input type="checkbox" name="checkbox1" value="White"> White </br>
        <input type="checkbox" name="checkbox2" value="Red"> Red </br>
        <input type="checkbox" name="checkbox3" value="Blue"> Blue </br>
        <input type="checkbox" name="checkbox4" value="Green"> Green </br>

        <input type="submit" name="save">
</form>

表名称:产品

列:产品名称、颜色

【问题讨论】:

我建议不要在colors 行上保存逗号分隔值 Is storing a delimited list in a database column really that bad? 此外,将选项的文本值重复为value 属性没有任何好处——只需完全删除value 声明即可。 【参考方案1】:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
$Colors = implode(',',$_REQUEST['colors']);
$sql = "INSERT INTO Products (Colors) VALUES ('$Colors') ";
mysql_query($sql);
   
?>

<form action="" method="post">
    <h3>Colors:</h3>
    <input type="checkbox" name = "colors[]" value="White"> White </br>
    <input type="checkbox" name="colors[]" value="Red"> Red </br>
    <input type="checkbox" name="colors[]" value="Blue"> Blue </br>
    <input type="checkbox" name="colors[]" value="Green"> Green </br>

    <input type="submit" name="save">
</form>

以上将在 Products 表的 Colors 列中保存逗号分隔的颜色值。

【讨论】:

另一种选择是json_encode,尤其是在数据中可能包含逗号的情况下。 psst PDO,SQL 注入。 谢谢!变量名必须相同,但如果涉及 [] 则不同。内爆是做什么的?

以上是关于在php中将数据从选中的复选框保存到数据库中的一行的主要内容,如果未能解决你的问题,请参考以下文章

如何在数据库中将复选框保存为true或false

将多个复选框插入数据库 Html Php

如何在颤动中将数据从复选框存储到 Firebase

使用复选框从数据库表中删除一行

如何保存保持选中的复选框?

未选中 POST PHP 时复选框不保存 [重复]