PHPでプロフィールページを作成しました。このページには、住所と電話のフィールドが含まれており、ユーザーはデータを挿入するように求められます。その後、データは profile という名前のテーブルに保存されます。すべて正常に動作しますが、問題はテーブルが毎回すべてのフィールドを更新することです。私が使用する関数は次のとおりです。
function update_user_profile($user_id, $update_data_profile){
$result = mysql_query("select user_id from profile where user_id = $user_id limit 1");
if(mysql_num_rows($result) === 1){
$update = array();
array_walk($update_data_profile, 'array_sanitize');
foreach($update_data_profile as $field => $data ){
$update[]='`' . $field . '` = \'' . $data . '\'';
}
mysql_query(" UPDATE `profile` SET " . implode(', ', $update) . " WHERE `user_id` = $user_id ") or die(mysql_error());
}else{
$user_id = $update_data_profile['user_id'] ;
if(count($update_data_profile)){
$columns = array();
$values = array();
foreach($update_data_profile as $field => $data){
$columns[] = $field;
$values[] = $data;
}
}
mysql_query(" INSERT INTO `profile` (" . implode(",", $columns) .") values ('" . implode("','", $values) . "')" ) or die (mysql_error());
}
}
私の質問は、この関数の最初の部分をどのように変更して、ユーザーが特定のフィールドにのみデータを挿入した場合、このフィールドのみが更新され、すべてのテーブルが更新されないようにすることです。たとえば、ユーザーが自分の電話番号と住所を挿入するとします。次にユーザーが再度フォームを使用してプロファイルを更新する場合、電話番号を変更すると、テーブル内の電話番号フィールドのみが変更され、住所を含む他のフィールドは変更されません。何か案は?thnx