回答
你可以做一對夫婦的方式。可能絕對最簡單的方法是在原始值的窗體上隱藏字段。然後在提交中,您可以將新值與原始值進行比較。
嗯,我不確定這是否是最好的方法,但它會工作。請注意,語法是爲tsql(SYBASE),但你明白了。
1)在更新記錄之前:使用與您的UPDATE查詢相同的WHERE子句。請注意,'新值'是你要更新的內容,如果一個字段沒有被更新,那麼只發送舊值。這會告訴你將會被UPDATE查詢取代的文件。
SELECT CASE WHEN field1 <> 'new value' THEN 'field 1' ELSE '' END,
CASE WHEN field2 <> 'new value' THEN 'field 2' ELSE '' END,
CASE WHEN field3 <> 'new value' THEN 'field 3' ELSE '' END,
CASE WHEN field4 <> 'new value' THEN 'field 4' ELSE '' END,
CASE WHEN field5 <> 'new value' THEN 'field 5' ELSE '' END
FROM table_name t
WHERE t.field1 = "old value"
2)更新記錄後:使用WHERE子句與您UPDATE查詢。請注意,「舊值」是更新前存在的值。如果記錄的關鍵字可以通過UPDATE進行更改,則可能需要相應地更新WHERE子句。這會給你由UPDATE更改的字段。
SELECT CASE WHEN field1 <> 'old value' THEN 'field 1' ELSE '' END,
CASE WHEN field2 <> 'old value' THEN 'field 2' ELSE '' END,
CASE WHEN field3 <> 'old value' THEN 'field 3' ELSE '' END,
CASE WHEN field4 <> 'old value' THEN 'field 4' ELSE '' END,
CASE WHEN field5 <> 'old value' THEN 'field 5' ELSE '' END
FROM table_name t
WHERE t.field1 = "old value"
感謝這樣一個偉大的答案lobo – Jonathan
我是一個初學者,但是從這裏(字面意義上)和這裏拉出一些東西,我想出了一些適合我的東西。
這是PHP /數據庫員工目錄。當我想編輯現有員工時,我正在使用預先填充了現有數據庫信息的表單。
當表單被提交時,並且在運行UPDATE查詢之前,我想獲取已更改的字段的名稱,以便將其添加到編輯日誌中。
同樣,我需要重申一下,我是一個初學者。毫無疑問,這是一種更簡單/更簡單的方法。你已經被警告:)
//Create array to use later in identifying the changed fields and set each to 0
$update = array('Firstname' => 0,
'Lastname' => 0,
'Extension' => 0);
//Set incoming POST data to variables
if (isset($_POST['e_fn'], $_POST['e_ln'], $_POST['e_ext'])) {
$e_fn = $_POST['e_fn'];
$e_ln = $_POST['e_ln'];
$e_ext = $_POST['e_ext'];
}
//grab existing employee data with existing function
$thisEmp = $employee->fetch_emp($e_id);
//set old data to $old_*
$old_fn = $thisEmp['firstname'];
$old_ln = $thisEmp['lastname'];
$old_ext = $thisEmp['extension'];
//compare $old_* to each field sent in POST and flip switch for changed fields
if ($old_fn !== $e_fn) {$update['Firstname'] = 1;}
if ($old_ls !== $e_ls) {$update['Lastname'] = 1;}
if ($old_ext !== $e_ext) {$update['Extension'] = 1;}
//get the key value for each element with the switch == 1
foreach ($update as $key => $value) {
if ($value == 1) {
$wasaffected .= $key . ', ';
}
}
現在你已經有了哪些領域進行了更改的名稱 好了,好了,它不是實際的字段的名稱,而是 名的鑰匙,但如果你願意,你可以將它們命名爲相同。
echo $wasaffected; //--> Firstname, Extension,
- 1. 查找受影響的行
- 2. MySQL查詢0行受到影響
- 3. 如何在每次更新查詢中獲取mysql中受影響的行數
- 4. 獲取FMDB更新查詢中受影響的行數
- 5. MySQL查詢的影響
- 6. 返回受更新查詢影響的行數?
- 7. 我的mysql更新查詢有什麼問題?受影響的行= 0
- 8. {}如何在PHP中影響MySQL查詢?
- 9. 受影響的行數FTS查詢
- 10. 記錄受MySQL中表鎖影響的查詢
- 11. MYSQL查詢使用CONTAINS更新字段
- 12. 查詢錯誤更新字段mysql
- 13. MySQL更新查詢從另一個表返回0行受影響
- 14. GROUP BY字段的序列影響MySQL查詢結果
- 15. 更改查詢字符沒有影響
- 16. 影響查詢
- 17. MySQL - 更新字段插入查詢從選擇查詢
- 18. 在MYSQL中更新查詢?
- 19. SQL查詢更新字段
- 20. 爲什麼用guid更新MySql查詢不會影響行?
- 21. PHP/MySQL查詢在字段中查找字符串
- 22. 當某列受影響時,查詢數據庫中的更新信息
- 23. 更新在單個查詢中兩次相同的mysql字段
- 24. 在MySQL中獲取更新值而不是受影響的行
- 25. 在MySQL更新中獲取所有受影響的rown
- 26. 覆蓋ModelForm.save不會更新所有受影響的字段
- 27. 如何知道在更新查詢後有多少行受到影響
- 28. PHP:在單個查詢中更新多個MySQL字段
- 29. php mysqli查詢語句和檢查受影響的行
- 30. 檢查更新查詢是否影響到行
是的,可以做布萊恩感謝給我的大腦一些光,但有沒有任何疑問要做呢? – Jonathan