Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示在SQL查询中修改的数据_Php_Mysql_Zend Framework - Fatal编程技术网

Php 显示在SQL查询中修改的数据

Php 显示在SQL查询中修改的数据,php,mysql,zend-framework,Php,Mysql,Zend Framework,我有一个“用户”表。用户可以修改他们的数据,如姓名、姓氏、电子邮件。我想发送电子邮件给管理员,其中将包含有关修改数据的详细信息。如果用户只更改姓名和电子邮件,我只想获取更改后的数据—在本例中,仅获取姓名和电子邮件 我的表格: <form action="" method="post"> <input type="text" name="name"> <input type="text" name="surname"> <input type="text"

我有一个“用户”表。用户可以修改他们的数据,如姓名、姓氏、电子邮件。我想发送电子邮件给管理员,其中将包含有关修改数据的详细信息。如果用户只更改姓名和电子邮件,我只想获取更改后的数据—在本例中,仅获取姓名和电子邮件

我的表格:

<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>
有没有其他解决方案,我只能抓取修改后的数据?
我使用的是Zend Framework,所有表字段的调用都与POST数据相同。

您可以在
$\u POST
数组中循环,并使用键从数据库中获取相应的值:

foreach($_POST as $key => $value){
    if($value !== $row[$key]){
        $changed[$key] = $value;
    }
}
但是,您可能希望排除循环中的某些字段(例如“提交”按钮):


表单是由数据库填充的,还是为空以允许用户输入信息?如果已填充,则可以将信息存储在数组中,并将$\u POST与数据库信息进行foreach比较。如果表单留空供用户填写更改的信息,只需检查$\u POST是否留空或是否提供了更改。不幸的是,没有更多的信息,很难提供答案。表单由数据库中的数据填充。我将用户发送的所有数据存储在一个数组中,我可以将原始数据存储在另一个数组中,但如何从中生成foreach呢?我必须用数据库中的数据做双foreach,用用户的数据做foreach?如何比较这两个阵列?所有字段都是通过表单发送的,所以我必须识别哪些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;
    }
}