在数据库中插入多行

时间:2014-11-25 19:37:55

标签: php mysql

我是一个初学的PHP代码,我正在尝试使用此更新循环更新多行数据。它只会使用最后一个条目更新数据库。

$size = count($_POST['wkmove_id']);
$i=0;
while( $i < $size ) {
   // define each variable
   $rps = $_POST['sessrps'][$i];
   $wgt = $_POST['sesswgt'][$i];
   $mv = $_POST['wkmove_id'][$i];

   echo " cat=$cat subcat=$subcat mv= $mv wgt=$wgt rps=$rps<br>";

   $sql = "INSERT INTO wkout_sess 
                 (wkprog_id, wkname_id, wkmove_id, sesswgt, sessrps)
                  VALUES ('$cat','$subcat','$mv','$wgt','$rps')";
   ++$i; 
}
if (!mysql_query($sql,$con))
{

   die('Error: ' . mysql_error());
}

echo "1 record added"; 

此输出将显示

cat=1 subcat=1 mv= 1 wgt=45 rps=4
cat=1 subcat=1 mv= 2 wgt=15 rps=4
cat=1 subcat=1 mv= 3 wgt=10 rps=2
cat=1 subcat=1 mv= 4 wgt=12 rps=1
cat=1 subcat=1 mv= 5 wgt=5 rps=54
cat=1 subcat=1 mv= 6 wgt=1 rps=6
cat=1 subcat=1 mv= 7 wgt=2 rps=6
cat=1 subcat=1 mv= 8 wgt=1 rps=6
cat=1 subcat=1 mv= 9 wgt=1 rps=2
cat=1 subcat=1 mv= 10 wgt=6 rps=1
cat=1 subcat=1 mv= 11 wgt=4 rps=69
cat=1 subcat=1 mv= 12 wgt=8 rps=6
cat=1 subcat=1 mv= 13 wgt=4 rps=8
cat=1 subcat=1 mv= 14 wgt=9 rps=4
cat=1 subcat=1 mv= 15 wgt=1 rps=2
cat=1 subcat=1 mv= 16 wgt=3 rps=6
cat=1 subcat=1 mv= 17 wgt=5 rps=4
cat=1 subcat=1 mv= 18 wgt=8 rps=7
cat=1 subcat=1 mv= 19 wgt=4 rps=6
cat=1 subcat=1 mv= 20 wgt=9 rps=7
cat=1 subcat=1 mv= 21 wgt=8 rps=9
cat=1 subcat=1 mv= 22 wgt=4 rps=1
cat=1 subcat=1 mv= 23 wgt=4 rps=1
cat=1 subcat=1 mv= 24 wgt=9 rps=7

1 record added

如何让它添加以前的所有23个条目?

1 个答案:

答案 0 :(得分:2)

您正在while循环后运行查询。你想在while循环中运行它。另请注意,您使用的是不推荐使用的mysql_ *函数,应该转移到PDO或MySQLi。

sql字符串$sql只运行一次,这就是它在循环中的最后一个值。

相关问题