我是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);
它可以工作,但它仍然会多次输入数据。
答案 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中的行数一样多,并且您将它们重新插入到同一个表中!!