我在mysql db中存储复选框值时遇到问题。如何修复此代码以存储所有选中的值?
检查行时,必须在数据库中存储七种不同的列
这部分代码负责从数据库中获取数据并将其放在表中:
while ($row = mysqli_fetch_array($query)) {
print
"<tr> <td><input type='checkbox' name='check[]' value='
".$row['course_id'].",
".$row['course_name'].",
".$row['day'].",
".$row['place'].",
".$row['hour'].",
".$row['type'].",
".$row['instructor_name']."' /></td>
<td>{$row['course_id']}</td>
<td>{$row['course_name']}</td>
<td>{$row['day']}</td>
<td>{$row['place']}</td>
<td>{$row['hour']}</td>
<td>{$row['type']}</td>
<td>{$row['instructor_name']}</td>
</tr>";
}
print "</table>
<input type='submit' name='Submit' value='Submit'>
</form>";
这部分代码负责将数据存储在数据库中
if(isset($_POST['check'])){
$returned = $_POST['check'];
$office = array('course_id','course_name','day','place','hour','type','instructor_name');
$values = array();
foreach($office as $selection){
$insert1 ="INSERT INTO initial_registration
(course_id,course_name,day,place,hour,type,instructor_name)
SELECT *
FROM offerd_course";
mysqli_query($insert1) or die(mysqli_error());
}
}
答案 0 :(得分:0)
我认为你的整个设置并不好,这里有一些代码可以帮助你入门:
首先打印所有课程
while ($row = mysqli_fetch_array($query)) {
print
"<tr>
<td><input type='checkbox' name='row_checked_".$row['course_id']."' value='1' /></td>
<td>{$row['course_id']}</td>
<td>{$row['course_name']}</td>
<td>{$row['day']}</td>
<td>{$row['place']}</td>
<td>{$row['hour']}</td>
<td>{$row['type']}</td>
<td>{$row['instructor_name']}</td>
</tr>";
}
然后插入部分:
再次查看所有课程,了解哪些课程已经“检查”
while ($row = mysqli_fetch_array($query)) {
if(isset($_POST['row_checked_'.$row['course_id']]) && $_POST['row_checked_'.$row['course_id']]==1){
//insert query here
}
}
您的插入查询也搞砸了,为什么要将整个课程插入初始注册?你宁愿做这样的事情:
$insert1 ="INSERT INTO initial_registration (course_id,STUDENT) VALUES ($row['course_id'],$some_student_id_value)";