PHP表单中的数据被多次插入到mysql数据库中

时间:2013-09-19 10:36:34

标签: php mysql forms insert sum

我是PHP和MYSQL的新手。我有这个表单用于将数据输入到我创建的数据库中。我将来自两个字段的值添加到单独的列中,并将值插入第三列(TOTAL_IN)。然后我从第三列(TOTAL_IN)中的字段中的值中减去另一个字段中的另一个值(VALUE3),并将该值放在不同的列中。所有这些都在同一张桌子上。它工作正常,但问题是,当我打开我的数据库时,我看到数据已被插入20或100次!如何阻止数据插入这么多次?

请注意,提交按钮只被点击一次。

以下是我使用的内容:

$sql="INSERT INTO $tbl_name (id, date, value1, value2, total_in, value3, value4)
      SELECT '','$date','$value1','$value2',('$value1'+'$value2') AS SUM,
              '$value3',(('$value1'+'$value2')-$value3) AS SUM
      FROM $tbl_name";
$result=mysql_query($sql);

任何帮助?

提前致谢!

编辑:::以下是我的建议后的代码:

//From Ruddy's post
$total_in=$value1+$value2;
$value4=($value1+$value2)-$value3;

//From Amit's post
$sql="INSERT INTO $tbl_name(id, date, value1, value2, total_in, value3, value4) VALUES ('', '.$date.', '.$value1.', '.$value2.', '.$total_in.', '.$value3.', '.$value4.')";
$result=mysqli_query($sql);

它可以工作,但它仍然会多次输入数据。

3 个答案:

答案 0 :(得分:5)

$sql="INSERT INTO $tbl_name (id, date, value1, value2, total_in, value3, value4)
 VALUES( '', '".$date."', ".$value1.", ".$value2.", ".$value1+$value2.", 
".$value3.",".$value1+$value2-$value4.")";
$result=mysql_query($sql);

在查询中编写时,需要连接php中的变量,请参阅语法。

请参阅here

您正在做的是选择表格的所有行并插入所有行。

答案 1 :(得分:2)

$sum= $value1+$value2;
$sum2= ($value1+$value2)-$value4;

$sql="INSERT INTO $tbl_name (id, date, value1, value2, total_in, value3, value4) VALUES ('', '$date', '$value1', '$value2','$sum','$value3','$sum2')"
$result=mysql_query($sql);

我讨厌声明中的总和,所以我把它们拿出来了。

答案 2 :(得分:0)

实际上,您的查询将插入从SELECT语句返回的行数!看起来您的SELECT返回的行数与$ tbl_name中的行数一样多,并且您将它们重新插入到同一个表中!!