仅更新已编辑/更改的字段

时间:2017-07-07 15:20:20

标签: php mysql

我有一个可由用户编辑的表单。进行更改时,我只希望更新这些更改。一名工作人员在整个页面加载之前按下“保存”,这意味着脚本将表单字段视为空,因此将字段替换为空字段。

目前的代码是:

$res= mysql_query ("UPDATE table SET site='$site', the1='$the1' WHERE id='$id'");

感谢这里的帮助.....

3 个答案:

答案 0 :(得分:0)

您需要编写javascript脚本来检查数据更改并仅发送更改的数据。例如,您可以将以前的数据保存在data-prev-value属性中。

<input type="text" name="my_field" id="field_id" value="old_value" data-prev-value="old_value">

在提交时,您进行比较

$('#field_id').val() != $('#field_id').attr('data-prev-value')

如果它们不相等则将数据添加到数组并将其发送到服务器。

答案 1 :(得分:0)

这是一个建议:

$res= mysqli_query("SELECT * from table where id ='$id'");

将结果提取到数组。 选择该数据后,您需要将它们与POST数据进行比较 如果您的数据库获取数据且您发布的数据不同,那么您将设置新值。

if($_POST['name'] == $res['name']){
    $name = $res['name'];
}
else{
$name = $_POST['name'];
}

答案 2 :(得分:0)

另一种解决方案是将所有字段的值设置为数据库中当前值的值。这样,他们知道当前的价值是什么,并且更容易让他们知道要改变什么,并且在提交表单时,它只是重新提交表单中的信息,无论它是否被更改。

例如:

<input type="text" name="firstname" value="<?php echo $row['firstname']; ?>" required>

提交表单时,它将保留当前存在的相同数据,或者如果在输入字段中更改了值,则更新它