4列あります。私はループの値に来るような(等しい)列の値だけを更新しようとしています。複数の列を条件付きで更新する
for ($a=0; $a<$i ; $a++) {
$sql= "update table1 set
col1= CASE when col1 like '$distval[$a]' then col1='$arr[$a]' else col1 end,
col2=CASE when col2 like '$distval[$a]' then col2='$arr[$a]' else col2 end,
col3=CASE when col3 like '$distval[$a]' then col3='$arr[$a]' else col3 end,
col4=CASE when col4 like '$distval[$a]' then col4='$arr[$a]' else col4 end";
mysqli_query($conn, $sql);
}
私はコードを説明してみましょう:
$ distval:私は、ユーザーが入力した値で更新するすべての4つの列の異なる値を含む配列です。
$ arr: '$ distval'と同じ番号のテキストフィールドの配列です。最初のテキストフィールドに値を入力すると、 '$ distvalue'の最初の値と同じように、テーブル内のすべての値が更新されます。
コードは何もエラーなしで更新されません。
'case'文はコードをプログラミングされていないが必要に '$ [$ A] ARR' = COLXを削除します。それらの内部で代入を「実行」することはできません。 –