所以我有一个HTML表单,它通过一个已连接到数据库的“ input.php”文件将数据发送到数据库。
我想要完成的是,从HTML表单发送到数据库的数据是全数字。我想知道如何编码input.php文件,以便从HTML表单提交新数字并将其发送到已经有数字的值时,将两者相加。
例如,人员A在第一天(例如说5)填写表格中的数字。第二天,他提交与数字3完全相同的字段。在数据库中,我没有覆盖第一个值,而是想要加起来。因此,在第1天,数据库应该说“ 5”,但是在第2天,数据库应该说“ 8”。
这是我将使用的基本“ input.php”文件。这些字段的名称将在我最终的代码中更改。
<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Escape user inputs for security
$first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']);
$last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']);
$email = mysqli_real_escape_string($link, $_REQUEST['email']);
// Attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES
('$first_name', '$last_name', '$email')";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);
?>
任何帮助将不胜感激。我以为也许我可以使用一些javascript验证,但是那是为了验证字段,而不是添加...所以...
谢谢!
答案 0 :(得分:3)
您需要做的两件事。首先,验证记录是否存在。其次,如果存在,则通过将表单输入添加到列来更新记录。如果不存在,则使用表单输入插入新记录。要进行更新,您可以编写
之类的查询 UPDATE TABLE_NAME
SET column_to_update = column_to_update+form_input_number
WHERE email=<email_address> ;
(假设电子邮件是主键,或将电子邮件替换为任何主键字段名称)
答案 1 :(得分:3)
比方说,列名称为counts
,需要对其进行求和,列索引为id
,如果已经存在,则可以使用ON DUPLICATE KEY UPDATE
根据id
进行更新,并插入一个新行(如果不存在):
更新:在这种情况下,您不需要id
字段,因为您可以使用AUTO_INCREMENT
使它自动化。
// Attempt insert query execution
$sql = "INSERT INTO persons (first_name, last_name, email, counts) VALUES
('$first_name', '$last_name', '$email', '$counts')
ON DUPLICATE KEY UPDATE counts = counts + $counts";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}