我有一张桌子'用户'。用户可以修改他们的数据,例如姓名,电子邮件。我想发送电子邮件给管理员,其中包含有关修改数据的详细信息。如果用户只更改名称和电子邮件,我只想获取更改的数据 - 在这种情况下只需要名称和电子邮件。
我的表格:
<form action="" method="post">
<input type="text" name="name">
<input type="text" name="surname">
<input type="text" name="email">
<input type="submit" value="Send">
</form>
我可以抓取在sql查询中修改过的数据,排除表格和表格中相同的数据吗? 我有一个想法,我必须检查每个POST字段与数据库中的相同,但我有更多的字段,这个解决方案不太好:
if($row['email'] !== $_POST['email']) { $changed_email = $_POST['email']; }
if($row['name'] !== $_POST['name']) { $changed_name = $_POST['name']; }
还有其他解决方案我只能抓取修改过的数据吗? 我使用Zend Framework,所有表字段都与POST数据相同。
答案 0 :(得分:0)
您可以循环遍历$_POST
数组并使用该键从数据库中获取相应的值:
foreach($_POST as $key => $value){
if($value !== $row[$key]){
$changed[$key] = $value;
}
}
但是,您可能希望在循环中排除某些字段(例如提交按钮):
$excluded_keys = array('submit', 'some_other_key');
foreach($_POST as $key => $value){
if(in_array($key, $excluded_keys)) continue;
if($value !== $row[$key]){
$changed[$key] = $value;
}
}