假设某人选择了2名学生和1名教师 如何在MYSQL数据库中发送/创建2个不同的记录, - 每个学生/教师组合的一个新记录
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,我将传入的复选框数据分开并尝试发送到数据库
$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() );
我错过了什么?非常感谢任何帮助
答案 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);
}
?>