如何通过检查php中的多个复选框在数据库中发送多个值

时间:2014-07-28 11:47:02

标签: php mysql

我在这里有一个表格,其中包含复选框和textarea字段。

现在从数据库中获取复选框的数量。我想如何在我将检查的复选框的数据库中插入值以及相应的textarea字段值。

但是当我点击提交按钮时,没有插入正确的数据。有人可以帮忙吗?

<?php

$sql_course="select * from lk_tb_course ";
$query_course=mysql_query($sql_course);
while($row_course=mysql_fetch_array($query_course))
{
?>

<input type="checkbox" value="<?php echo $row_course['course_id']; ?>" name="courses_id[]" class="" ><?php echo " ".$row_course["course_name"]; ?>
<textarea name="admission_criteria[]"></textarea>

<?php }  ?>

<input type="submit" value="save" name="save"/>
</form>

这是我的PHP代码:

<?php

if(isset($_POST["save"]))
{
    for($i=0;$i<count($_POST["courses_id"]); $i++)
    {    
        $courses_id=$_POST["courses_id"][$i];
        $admission_criteria=$_POST["admission_criteria"][$i];
        mysql_query("insert into tb_college_course set course_id='$courses_id',admission_criteria='$admission_criteria'");
    }
}

?>

1 个答案:

答案 0 :(得分:0)

  • 不再使用mysql_ *。不推荐使用。如果您刚开始新的开发,则不应使用过时的数据库解决方案。

  • 如果您在从html表单切换到评估程序时遇到问题,那么就让整个数据库消失。人们认为这取决于数据库,而不是解析后移交并将注意力集中在数据库部分上。

mysqli-connect
pdo.construct


问题:

这是基于一种谬论。

我们假设在html表单中有6个复选框,6个textareas
和数据表也有6条记录ID是2,10,150,200,201,202

复选框[0]未选中
复选框[1]未选中
复选框[2]未选中
...
复选框[3]已检查
复选框[4]已检查
复选框[5]已选中

通过邮寄我们得到3个复选框和6个Textareas !!!

从[3]到[5]的复选框 Textarea从[0]到[5]

计数复选框count($_POST["courses_id"]为3

for($i=0;$i<count($_POST["courses_id"]); $i++)我们得到

$ i =来自

的0到2个值

复选框[0]未设置 复选框[1]不是设置
checkbox [2] not isset

要相互联系现在关联的值,请执行以下操作(从0到2)。

ID =复选框[$ i] ==复选框[0](必须是复选框[3])
text = textarea [$ i] == textarea [0](textarea [3])

复选框[0] 无效它通常不可用错误
textarea [0]已设置但为空=“”

最好是设置当前ID 因此,您始终拥有数据表中的实际值。

<input type="checkbox" name="courses_id[$row_course['course_id']]"    
<textarea name="admission_criteria[$row_course['course_id']]"

否则,分配不再适用于您的表格

 <?php
 $CourseID = $row_course['course_id'];
 echo "<input type=\"checkbox\" value=\"".$CourseID."\""; 
 echo " name=\"courses_id[".$CourseID."]\" class=\"\" >";
 echo " ".$row_course["course_name"]."<br />\n"; 
 echo " <textarea name=\"admission_criteria[".$CourseID."]\"></textarea><br />\n";
 ?>

使用foreach

$coursesArr=$_POST["courses_id"];

foreach ($coursesArr as $key => $IDvalue) {
     echo $key."<br />\n";
     $admission_criteria=$_POST["admission_criteria"][$key]; 
     echo $admission_criteria."<br />\n";
 }