如何使用PHP将复选框中的多值保存到数据库中

时间:2011-11-25 18:03:49

标签: php database checkbox

我正在尝试将多个值保存到数据库中。

我正在做的是这个;我有一个名为location的表,它有id和locationName,我从数据库中获取所有位置值并在表单中显示它们,以便用户可以选择多个位置。

<input type="checkbox" size="40" name="location[]" value="'.$location[$j]["id"].'" />'

现在任何人都可以告诉我将它保存到数据库中的最佳解决方案是什么?

我应该为表格中的每个位置创建一个字段,还是一个字段可以工作?

我还需要一些可以帮助我做出更好的搜索的东西,而我不需要编写太多的代码。

2 个答案:

答案 0 :(得分:0)

两个简单的方法。

您可以制作多对多的链接表,用于将用户的主键与该位置的主键配对。

另一种选择是使用json_encode()serialize()$_POST['location']数组解析为机器可读的字符串形式,将它们全部放入用户表中的一个字段中。

答案 1 :(得分:0)

我最近这样做的方法是简单地使用$_POST['location']中的数组并使用implode(',', $_POST['location'])进行内爆。

这将为您提供一个字符串,您可以轻松地将其存储在数据库的单个字段中。稍后当您检索数据时,再次将其分解以获取数组。