2017-03-20 88 views
0

我正在使用一個有50多個字段的表單。我完成了插入,選擇和刪除記錄,但我與更新記錄混淆,因爲如果用戶正在更新一個或兩個字段中的50個,那麼更新查詢應該使用最少的字段。但是我怎麼能檢測到這個字段被編輯,這個字段需要在服務器端更新?有人請幫我準確的解決方案。如何檢測表單編輯,以便只更新數據庫?

+0

「如果用戶正在更新50箇中的一個或兩個字段,那麼更新查詢應該使用最少的字段」 - 爲什麼? – Quentin

+0

向我們展示您到目前爲止所嘗試的內容 –

+0

更新聲明通常不是那種徵稅。儘管您提出了一個有趣的問題,但您不應該擔心是否從已更新或未更新的內容動態構建語句。主要取決於DB的類型(SQL或NoSQL) – DDelgro

回答

1

要獲得精確的解決方案需要更多的數據(在我看來);不過,我相信你所要求的可以通過使用變量構建更新語句並遍歷$ _POST數據(建議未經測試)來完成。

//assumes control names on form = field names in db 

$strSQL = "UPDATE tblWhatever SET "; 
$fieldsAndvalues = ""; 
$markers = ""; 

foreach($_POST as $key => $value) 
{ 
    if ($value <> "") { 

    //code to check for $value's data type and set $marker to what is 
    //appropriate (e.g., string set $markers to "'", if numeric set to "", etc.) 

    $fieldsAndvalues .= $key . "=" . $marker . $value . $marker . "," 
    } 
} 

//Remove final comma (,), build final SQL statment, execute statement 
if ($fieldsAndvalues <> "") { 
    $strSQL .= substr($fieldsAndvalues,0,-1) . " WHERE <whatever criteria is used>"; 

    //execute query with whatever error checking and such you require 
} 
相關問題