我正在使用一个有50多个字段的表单。我完成了插入,选择和删除记录,但我对更新记录感到困惑,因为如果用户正在更新50个中的一个或两个字段,那么更新查询应该是最小字段。但是我怎样才能检测到这些字段是否被编辑并且这些字段需要在服务器端更新?有人请帮我解决问题。
答案 0 :(得分:1)
要获得精确的解决方案,需要更多数据(在我看来);但是,我相信你所要求的可以通过使用变量并迭代$ _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
}