2010-05-18 81 views
3

當用戶編輯他們的帳戶時,我想顯示一個確認頁面,顯示他們的更新信息及其以粗體更改的字段。是否有mysql語句允許您選擇用戶更改的字段?如果不是,究竟我能做到這一點有沒有辦法顯示你在mysql中更新了哪些字段?

例:

(editaccount.php) 
first_name: bob 
last_name: builder 
email: [email protected] 

當他們改變說他們的名字爲「詹姆斯」,確認頁面 以粗體顯示他們的名字,因爲他們改變了這一切,但其他地區仍然是正常的文字。

first_name: <b>James</b> 
last_name: builder 
email: [email protected] 
+0

假設您要提交此表單,您可以將$ _POST變量與MySQL的原始數據進行比較,並在值不匹配時調整顯示。 – dusk 2010-05-18 22:54:47

回答

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 
3

我會在應用程序級別處理它,在PHP中。在提交更新之前,只需從數據庫中提取數據,將每個字段與提交的數據進行比較,並根據自己的喜好處理每個不平等。

+0

好吧,聽起來很簡單。謝謝。 – ggfan 2010-05-18 22:56:46

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; 
    } 
}
相關問題