php - mysqli使用foreach从多个复选框插入数据库
问题描述
所以我试图从我的数据库中获取数据到复选框,这就是我尝试过的:
<?php
$query = "SELECT * FROM siswa WHERE id_tingkatan='$idtingkatan'";
$result = $koneksi->query($query);
while($row=$result->fetch_assoc()){
?>
<input type="checkbox" name="murid[]" value="<?php echo $row['id_siswa']; ? >"><?php echo $row["nama_siswa"]; ?><br><br>
<?php } ?>
并将选中复选框的值保存到数据库中,这是我尝试过的:
if(isset($_POST["submit"]))
{
if(!empty ($_POST['murid']))
{
$i= 0;
foreach($_POST as $murid){
$kelas = $_POST['kelas'];
$murid = $_POST['murid'][$i];
$query = "INSERT INTO murid (id_kelas, id_siswa) VALUES ('$kelas', '$murid')";
$q = mysqli_query($koneksi, $query) or die (mysqli_error($koneksi));
$i++;
}
}
else
{
echo "<script type= 'text/javascript'>alert('Pilih minimal 1 siswa');</script>";
header('Location: ./kelas.php');
}
}
当我提交它时,它确实输入到数据库,但有一个额外的行,id_siswa 值为 0
解决方案
该代码为 中的每个值插入一条记录$_POST
。但是,$_POST
包含发送的所有参数(包括submit
),而不仅仅是要插入的复选框数组。$_POST['murid']
而是迭代复选框数组。
改变
foreach($_POST as $murid) ...
至
foreach($_POST['murid'] as $murid) ...
推荐阅读
- python-3.x - 将列中的元素映射到其在另一列中的位置
- sparql - 如何使用 SPARQL 从 Wikidata 获取值的单位?
- javascript - 正则表达式 - 不要只允许空格或特殊字符
- python - 如何在python中使用日期条件查找json字典键名和值
- python - 根据数据框中的条件过滤数据
- scipy - 使用循环寻根
- c - C 动态链接符号解析
- r - R survminer 95%CI 估计方法
- java - 通过 t3 协议访问 weblogic 服务器上的 jndi 数据源与直接访问数据库有何不同?
- methods - ActiveRecord 通过 has_many 删除行:通过关联