Nie aktualizuj kolumn, które nie są przeznaczone do aktualizacji. Na przykład, jeśli wybrano tradycyjną wiadomość, zaktualizowałbyś tylko tę kolumnę. Prawdopodobnie użyłbym tutaj osobnych zapytań.
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());
}
}
Zauważ, że wierzę, że używasz bardzo starego i przestarzałego API PHP dla MySQL. Na początek, skorzystanie z gotowych zestawień byłoby bardzo korzystne.