更新の対象とならない列は更新しないでください。たとえば、従来のメッセージが選択された場合、この列のみを更新します。ここではおそらく別のクエリを使用します。
foreach ($_POST['patientid'] as $index => $patientid) {
$id = mysql_real_escape_string($_POST['id'][$index]);
$data1 = mysql_real_escape_string($patientid);
$data2 = mysql_real_escape_string($_POST['traditionalmessage'][$index]);
$data3 = mysql_real_escape_string($_POST['simplifiedmessage'][$index]);
$data4 = mysql_real_escape_string($_POST['engmessage'][$index]);
if ($data2 != null && $data2 != '') {
mysql_query("UPDATE table SET patientid ='$data1',
traditionalmessage='$data2' WHERE id=$id") or die(mysql_error());
}
else if ($data3 != null && $data3 != '') {
mysql_query("UPDATE table SET patientid ='$data1',
simplifiedmessage='$data3' WHERE id=$id") or die(mysql_error());
}
else if ($data4 != null && $data4 != '') {
mysql_query("UPDATE table SET patientid ='$data1',
engmessage='$data4' WHERE id=$id") or die(mysql_error());
}
}
MySQL用の非常に古くて非推奨のPHPAPIを使用していると思います。手始めに、プリペアドステートメントを使用することで多くのメリットが得られます。