2017-03-20 8 views
0

私は50以上のフィールドを持つ1つのフォームを使用しています。レコードの挿入、選択、削除が完了しましたが、ユーザーが1つまたは2つのフィールドを50から更新している場合、更新クエリは最小限のフィールドでなければならないため、更新レコードと混同します。このフィールドが編集され、このフィールドがサーバー側で更新される必要があることを検出するにはどうすればよいですか?誰かが正確な解決策で私を助けてください。フォーム編集を検出すると、データベース上でのみ更新されます。

+0

"ユーザーが1つまたは2つのフィールドを50から更新している場合、更新クエリは最小限のフィールドでなければなりません" - なぜですか? – Quentin

+0

これまでに何を試してみましたか –

+0

更新文は一般的に課税対象とはなりません。興味深い質問がありますが、更新されたものから動的にステートメントを構築することについては心配すべきではありません。主にDB(SQLまたはNoSQL)のタイプに依存します。 – DDelgro

答えて

1

正確な解決策を得るには、より多くのデータが必要です(私の意見では)。しかし、私は変数を使ってupdate文を作成し、$ _POSTデータを反復することでPHPで達成できることを信じています(これはテストされていません)。

//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 
} 
関連する問題