mysqli使用foreach从多个复选框插入数据库

pbpqsu0x  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(298)

所以我试着从我的数据库中获取数据到checkbox,这就是我所尝试的:

<?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 } ?>

并将checked checkbox的值保存到数据库中,这是我尝试的:

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\u siswa值为0

wrrgggsh

wrrgggsh1#

代码为中的每个值插入一条记录 $_POST . 然而, $_POST 包含发送的所有参数(包括 submit ),而不仅仅是要插入的复选框数组。遍历复选框数组 $_POST['murid'] 相反。
改变

foreach($_POST as $murid) ...

foreach($_POST['murid'] as $murid) ...

相关问题