php-sqlwhile循环只插入最后一条记录


php sql while loop only inserting last record

使用以下代码,只将最后一条记录插入数据库。然而,如果我回显循环中的数据,它会回显所有记录,回显$I会显示它在增加。mysql有点新,所以任何建议都欢迎

while($i <= $num_to_enter){
$name[$i] = $_POST['name'][$i];
$lname[$i] = $_POST['lname'][$i];
$email[$i] = $_POST['email'][$i];
$phone[$i] = $_POST['pfirst'][$i].$_POST['psecond'][$i].$_POST['pthird'][$i];
$skill[$i] = $_POST['skill_level'][$i];
$sex[$i] = $_POST['sex'][$i];
    $sql = "INSERT INTO `" . $mytable . "` (
`FirstName`,
 `LastName`,
 `email`,
 `phone`,
 `SkillLevel`,
 `sex`
) VALUES (
'$name[$i]',
 '$lname[$i]',
 '$email[$i]',
 '$phone[$i]',
 '$skill[$i]',
 '$sex[$i]'
);";
 $i++;
}
while($i <= $num_to_enter){
$name[$i] = $_POST['name'][$i];
$lname[$i] = $_POST['lname'][$i];
$email[$i] = $_POST['email'][$i];
$phone[$i] = $_POST['pfirst'][$i].$_POST['psecond'][$i].$_POST['pthird'][$i];
$skill[$i] = $_POST['skill_level'][$i];
$sex[$i] = $_POST['sex'][$i];
    $sql = "INSERT INTO `" . $mytable . "` (
`FirstName`,
 `LastName`,
 `email`,
 `phone`,
 `SkillLevel`,
 `sex`
) VALUES (
'$name[$i]',
 '$lname[$i]',
 '$email[$i]',
 '$phone[$i]',
 '$skill[$i]',
 '$sex[$i]'
);";
mysql_query($sql);
 $i++;
}

只有最后一条记录被插入数据库

你确定吗?您甚至没有在代码的任何位置运行mysqli_query($conn,$sql)

如果您正在定义sql查询,但没有执行它,请尝试将代码更改为:

while($i <= $num_to_enter){
$name[$i] = $_POST['name'][$i];
$lname[$i] = $_POST['lname'][$i];
$email[$i] = $_POST['email'][$i];
$phone[$i] = $_POST['pfirst'][$i].$_POST['psecond'][$i].$_POST['pthird'][$i];
$skill[$i] = $_POST['skill_level'][$i];
$sex[$i] = $_POST['sex'][$i];
$sql = "INSERT INTO `" . $mytable . "` (
 `FirstName`,
 `LastName`,
 `email`,
 `phone`,
 `SkillLevel`,
 `sex`
) VALUES (
'$name[$i]',
 '$lname[$i]',
 '$email[$i]',
 '$phone[$i]',
 '$skill[$i]',
 '$sex[$i]'
);";
 mysqli_query($con, $sql) or die(mysqli_error($con));
 $i++;
}