LoationName= $locationName である次のテーブルを更新するために使用されるフォームがあります
+--------+---------------------+--------------+------+
|Id |LocationName|TaskComplete | TaskNotes |
+--------+---------------------+--------------+------+
|001| NYC,FRA,UK |no,yes,no |NULL,Task Completed-FRA,NULL
|002| NYC,FRA,UK |no,no,yes |NULL,NULL,task-completed @ UK
|003| NYC,FRA,UK |no,no,yes |NULL,Task-started-FRA,completed Mar 3rd
task-complete および task-notes 列を正しい locationName に対応する情報で更新するにはどうすればよいですか? NYC がステータスを更新する場合、テーブルは次のように更新する必要があります。
+--------+---------------------+--------------+------+
|Id |LocationName|TaskComplete | TaskNotes |
+--------+---------------------+--------------+------+
|001| NYC,FRA,UK |yes,yes,no |NYC NOTES,Task Completed-FRA,NULL
|002| NYC,FRA,UK |yes,no,yes |NYC-Finished task2,NULL,task-completed @ UK
|003| NYC,FRA,UK |yes,no,yes |Completed-Tuesday,Task-started(FRA),completed Mar 3rd
25 か所で完了する必要がある合計 100 のタスクがあります。次の UPDATE ステートメントは問題ありませんが、col を単一の値 ("yes" または "no") で更新するだけなので、このシナリオでは機能しません。
UPDATE operations_checklist SET TaskComplete='$val' where TaskId IN($i)
私の解決策は、TaskComplete 値を爆発させ、array_replace を使用して必要な値/位置を更新することだと考えています。最善の解決策は何ですか?
TaskName に 77 列、TaskNotes に 77 列、completeDate に 77 列などのテーブルを作成することになるかもしれません。