如何使用复选框和html选择的组合将多个记录插入到mysql数据库中

时间:2014-07-26 13:09:01

标签: php mysql checkbox

假设某人选择了2名学生和1名教师 如何在MYSQL数据库中发送/创建2个不同的记录, - 每个学生/教师组合的一个新记录

HTML:

1。)在这里我可以选择和#34;四和#34;生:

    <input type="checkbox" name="ALM[]" value="Bob" >Bob<br />
    <input type="checkbox" name="ALM[]" value="Stacy" >Stacy<br />
    <input type="checkbox" name="ALM[]" value="John" >John<br />
    <input type="checkbox" name="ALM[]" value="Liam" >Liam<br />

2。)下面我选择&#34; ONE&#34;师:

    <select name="TCH">
    <option value="Dan">Dan</option>
    <option vaule="Rick">Rick</option>

如果我选择Bob和Stacy(学生)和Rick(老师),我需要。 2记录1.)鲍勃|里克。 2.)Stacy |瑞克。

PHP:

这是我的PHP,我将传入的复选框数据分开并尝试发送到数据库

$ALM = implode(',',$_POST['ALM']);
$TCH = $_POST['TCH']; 

$query = "INSERT INTO cl_st_tch (students_id,teachers_id) 
VALUES"; for ($i=0; $i<sizeof($ALM); $i++)
   $query .= "('" . $ALM[$i] . "','$TCH'),";
   $query = rtrim($query,',');
   mysql_query($query) or die (mysql_error() );

我错过了什么?非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

为了避免多个SQL查询,可以构建单个查询。

    <?php
    $ALM = $_POST['ALM']; //implode(',',$_POST['ALM']);
    $TCH = $_POST['TCH'];
    $arr = array();
    $query = 'INSERT INTO cl_st_tch (students_id,teachers_id) VALUES ';
    foreach($ALM as $student){
            $arr[] = '('.$student.','.$TCH.')';
    }
    if(!empty($arr)) {
            $query .= implode(', ', $arr);
            mysql_query($query);
    }
    ?>

答案 1 :(得分:0)

由于您的比例为1:n(1名教师对许多学生),

遍历每个学生并为每个学生添加一名教师。

<?php

   $ALM = $_POST['ALM']; //implode(',',$_POST['ALM']);
   $TCH = $_POST['TCH']; 

   foreach($ALM as $student){
      $query = "INSERT INTO cl_st_tch (students_id,teachers_id) VALUES($student, $TCH)";
      mysql_query($query);
   }
?>