Php 在每个foreach中使用多个foreach进行insert只获取每个foreach中的最终值
我目前正在研究一个评估系统。问题是动态创建的/ 所以我已经试着从不同的foreach输入字段中插入值,我使用输入类型文本而不是单选按钮。我的代码只是插入从每个foreach循环得到的最后一个值Php 在每个foreach中使用多个foreach进行insert只获取每个foreach中的最终值,php,mysqli,Php,Mysqli,我目前正在研究一个评估系统。问题是动态创建的/ 所以我已经试着从不同的foreach输入字段中插入值,我使用输入类型文本而不是单选按钮。我的代码只是插入从每个foreach循环得到的最后一个值 <?php session_start(); include('connectDB.php'); $userId= $_SESSION['id']; mysqli_query($conn,"UPDATE student SET evaluationId = 1
<?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');
?>
您不需要所有的内部循环,只需从外部循环获取索引并将其用于所有内部数组即可。因此,这里从foreach
键获取$i
foreach($_POST['nPersonnelId'] as $i => $personnelId ){
$rCourteous = $_POST['rCourteous'][$i];
其他每个字段都相同
正如所指出的,使用准备好的语句。您的代码容易受到SQL注入的攻击。使用预先准备好的语句。对不起,我的代码我只是一个初学者,如何改进它?非常感谢@JasperThanks!我真的很感激@Pie@Jaspersorry我只是一个初学者``foreach($\u POST['nPersonnelId']as$I=>$personnelId){$rCourteous=$\u POST['rCourteous'][$I];mysqli_查询($conn),插入qpanswer(studentId,personnelId,cious)值($userId','personnelId','rCourteous);}“``我照你说的做了,但什么也没发生。我只是礼貌地测试了一下,其他每个字段都是一样的。因此,对于循环中的每个字段,你也需要将其更改为类似于$rCourteous
的设置方式。对不起,我不明白。你能给我解释一下吗?我有点担心。”慢点,对不起