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

时间:2018-04-28 00:21:55

标签: php mysql

所以我试图从我的数据库中获取数据到复选框,这就是我尝试过的:

<?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复选框的值保存到数据库中,这是我尝试过的:

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

1 个答案:

答案 0 :(得分:0)

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

更改

foreach($_POST as $murid) ...

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