将多个复选框值插入MySQL


Inserting multiple checkboxes values to MySQL

我正在编写一个博客的后端代码,发帖者应该选择帖子的类别。

我不知道下一步该怎么办,我只有这段代码,它可以获得所有复选框(选中)值

php代码

 if(isset($_POST['category'])){
   $category = $_POST['category'];
   foreach ($category as $cat=>$value) {
   echo $value;

html代码

<input type="checkbox" name="category[]" value="CategoryA"> CategoryA 
        <input type="checkbox" name="category[]" value="CategoryB"> CategoryB
        <input type="checkbox" name="category[]" value="CategoryC"> CategoryC

我只是想知道如何插入值

最好的方法是创建单独的表来添加类别。

例如:

tid, name, post_id //something you need 

然后,每个类别都需要插入一个新行。这里tid是自动增量,name是类别名称,post_id是博客表中的自动增量字段。

因此,您也可以使用LEFT JOIN从子表中获取数据。

另一种方法是序列化数据并插入博客表中的varchar字段

$serializedData = isset($_POST['category']) ? serialize($_POST['category']) : "";

您可以保存以逗号分隔的类别值,如下所示。

$category = is_array($_POST['category']) ? implode(",",$_POST['category']) : '';
echo $category;

没有一种标准的方法可以做到这一点。这取决于您的应用程序以及您希望如何使用这些信息。若它只是显示用户选择了哪些类别,并且不需要单独的检查或逻辑,则可以将获得的值转换为JSON字符串,并将其插入数据库。假设你有A类、B类、C类、D类和E类。如果用户选择类别A和类别D。您的JSON会像这样:

[{"CategoryA":"1"}, {"CategoryB":"0"}, {"CategoryC":"0"}, {"CategoryD":"1"}, {"CategoryE":"0"}]

在上面的JSON字符串中,"0"表示尚未选择类别,而"1"表示已选择类别。或者,如果您有指定数量的类别,并且它们不会经常更改,则只能在用户选择的JSON中添加类别。您不必自己编写这个JSON,只需创建一个具有以下规范的数组即可

$Array['CategoryA'] = 1;

。.

$Array['CategoryE'] = 0;

制作好数组后,只需使用PHP函数json_encode($ArrayToEncode)和viola!您有一个JSON对象。希望它能回答你的问题。如果您有任何困惑,请随时询问。