有没有办法显示你在mysql中更新的字段?

时间:2010-05-18 22:50:24

标签: php mysql

当用户编辑他们的帐户时,我想显示一个确认页面,其中显示他们更新的信息以及他们以粗体更改的字段。是否有一个mysql语句允许您选择用户更改的字段?如果没有,我究竟能实现这个目标

例如:

(editaccount.php)
first_name: bob
last_name:  builder
email: bobbuilder@gmail.com

当他们改变时,将他们的名字称为“詹姆斯”,即确认页面 以粗体显示他们的名字,因为他们改变了,但其他区域仍然是普通文本。

first_name: <b>James</b>
last_name: builder
email: bobbuilder@gmail.com

3 个答案:

答案 0 :(得分:3)

我会在应用程序级别处理它,在php中。在提交更新之前,只需从数据库中提取数据,将每个字段与提交的数据进行比较,并根据自己的喜好处理每个不等式。

答案 1 :(得分:3)

您需要自己将字段与旧数据进行比较。

非常基本的例子:

$old_user_data = <fetched from db>;
$new = $_POST;
$changed = array();

foreach ($old_user_data AS $field => $value) {
  if ($new[$field] != $value) {
     $changed[] = $field;
  }
}

print_r($changed); // array contains all fields that were changed

答案 2 :(得分:2)

我不知道MySQL是否可以告诉你哪些字段被改变了。有兴趣听听怎么样。在PHP中,您可以简单地比较更新之前和之后的信息。

// select current info, store it in $before, e.g.
// then go through the posted values
$changed = array();

foreach ($_POST as $key => $value) {
  // compare new value against the previous one
  if ($before[$key] != $value) {
    $changed[] = $key;
  }
}