1

我是 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);

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

4

3 回答 3

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 中的变量,请参阅语法。

这里

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

于 2013-09-19T10:44:27.723 回答
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);

我讨厌声明中的金额,所以我把它们去掉了。

于 2013-09-19T10:47:36.770 回答
0

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

于 2013-09-19T10:45:25.107 回答