2017-10-07 50 views
-1

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

$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>"; 
    } 
}  
+2

我认为你是在通灵论坛之后。在这里,我们倾向于看到表格的结构,而不是试图想象他们 – Strawberry

+0

可能重复[在MySQL数据库中存储复选框值的最佳方式是什么?](https://stackoverflow.com/questions/6784533/whats-the -best-way-store-checkbox-values-in-mysql-database) – Dmitry

回答

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) 
+0

谢谢你的建议:) –

相关问题