首页 > 解决方案 > 在每个 foreach 中使用多个 foreach 插入仅在每个 foreach 中获取最终值

问题描述

我目前正在研究一个评估系统。问题是动态创建的/

所以我已经尝试从不同的输入字段中插入值,我使用输入类型文本而不是单选按钮。我的代码只是插入从每个 foreach 循环中获取的最后一个值。

 <?php 
    session_start();
    include('connectDB.php');
    $userId= $_SESSION['id'];

    mysqli_query($conn,"UPDATE student SET evaluationId = 1 WHERE studentId='$userId'");

    foreach($_POST['nPersonnelId'] as $personnelId ){
        for ($i=0; $i<count($_POST['rCourteous']); $i++){
            $rCourteous = $_POST['rCourteous'][$i];
        }
        for ($i=0; $i<count($_POST['rPrompt']); $i++){
            $rPrompt = $_POST['rPrompt'][$i];
        }
        for ($i=0; $i<count($_POST['rCompetent']); $i++){
            $rCompetent = $_POST['rCompetent'][$i];
        }
        for ($i=0; $i<count($_POST['rAccom']); $i++){
            $rAccom = $_POST['rAccom'][$i];
        }
        mysqli_query($conn,"INSERT INTO qpanswer
                (studentId,personnelId,courteous,prompt,competent,accommodating) 
                VALUES ('$userId','$personnelId','$rCourteous','$rPrompt','$rCompetent','$rAccom')");
    }
    header('location:studentDashboard.php');
?>

标签: phpmysqli

解决方案


您不需要所有内部循环,只需从外部循环获取索引并将其用于所有内部数组。所以这里$iforeach关键...

foreach($_POST['nPersonnelId'] as $i => $personnelId ){
    $rCourteous = $_POST['rCourteous'][$i];

其他每个字段都相同。

同样正如所指出的 - 使用准备好的语句。


推荐阅读