在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中将数据从选中的复选框保存到数据库中的一行的主要内容,如果未能解决你的问题,请参考以下文章