2013-11-25 65 views
0

使用下面的代码,只有最后一条记录被插入到数据库中。但是,如果我在循环中回显数据,它会回显所有记录并回显$ i,表明它正在递增。还挺新到mysql所以php sql while循环只插入最后一条记录

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

你贴的代码显示的查询字符串,但没有在那里实际执行查询。我怀疑你的'mysql_query'或等价物位于你的循环后面,因此只执行'$ sql'的最后一个值。您需要将'mysql_query'或等价物放入循环中 –

+1

您不应该在循环中使用mysql_query。 – Chris

+0

我们不会在你的代码中提及SQL注入风险。这些值目前直接从用户进入您的查询。他们应该逃脱,或者你应该探索准备好的陈述。 –

回答

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

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

你肯定任何建议,欢迎?你甚至没有在代码的任何地方运行mysqli_query($conn,$sql)

+1

蜡笔暴力和尚卡达莫达兰感谢你们俩的头!让我尝试一下。哦,是的,最后的记录确实进入了!??在循环后我有\t \t如果 \t \t { \t \t \t mysql_close($ CON)(的mysql_query($的SQL,$ CON)!); 一些错误信息 \t \t} else { \t \t \t mysql_close($ con); \t \t \t成功消息 \t \t} –

+1

yesm,但你的循环不断改写你的$ SQL字符串用一个新的,所以你最终只执行最后定义字符串。你需要将mysql_query()放入循环中。 –

+1

@MarcB,这是正确的,它会解决OP的问题,但是你真的认为这将是一个好主意吗? –

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++; 
} 
相关问题