如何使用PHP在数据库中的同一个表的多个列中存储多个复选框值?

时间:2017-10-07 07:29:54

标签: php mysql checkbox

在下面的代码中,我选择了4个复选框,我可以显示这4个选中的复选框。但是如何在讲座1,讲座2等不同的列中将这4个选中的复选框值存储在我的数据库的同一个表中。 4是讲座复选框的默认值。

$teachername1=$_POST[ 'teachername1' ];
echo"$teachername1";
$_SESSION['teachername1']=$_POST[ 'teachername1' ];
if(!empty($_POST['lecture']))
{
   $checked_count = count($_POST['lecture']);
   echo"You have selected following ".$checked_count."option(s):<br/>";
   foreach($_POST['lecture'] as $selected)
   {
      echo $selected."<br>";
   }
}    

1 个答案:

答案 0 :(得分:0)

你还没有发布表格结构,但无论如何我会尽力在这里给出最好的建议。

现有系统:

您的表格中有4个选择列,例如:

将所有4列设为布尔值,通过分别插入1或0来检查它们是设置(1)还是不设置(0),以跟踪它们是否已选择该选项。

id,(other columns),choice1, choice2, choice3, choice4

确保在将数据库表集1或0插入相应表时插入复选框选中的值时。

如果列设置为1,则在获取相应行的记录时,则会选中该复选框。

系统存在问题。请使用以下方式。

建议方式:

请不要将复选框值存储在不同的列中。今天你可能只有4个值。想想你将来可能会拿出8个复选框。在这种情况下,您需要再添加4列。

除此之外,您可以通过再添加一个具有相应名称的表来规范化数据库表。现在,您的新规范化表格看起来像

checkbox table
--------------

id, checkbox_name, checkbox_value(if any)

teachers table
--------------

id, cols (other columns which I dont know whether its there or not)

teachers_choices //This is the checkbox selected table
----------------

id, teacher_id(this references to teacher table), checkbox_id (this references to checkbox table)