php sql while循环只插入最后一条记录

时间:2013-11-25 18:29:09

标签: php mysql

使用以下代码,只将最后一条记录插入数据库。但是,如果我回显循环中的数据,它会回显所有记录并回显$ 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++;
}

3 个答案:

答案 0 :(得分:0)

  

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

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

答案 1 :(得分:0)

您正在定义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++;
}

答案 2 :(得分:0)

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++;
}