Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiornare 3 colonne di tabelle mentre solo una colonna è visibile nella pagina

Non aggiornare le colonne che non sono oggetto di aggiornamento. Ad esempio, se fosse selezionato il messaggio tradizionale, aggiorneresti solo questa colonna. Probabilmente userei query separate qui.

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());
    }
}

Nota che credo che tu stia utilizzando un'API PHP molto vecchia e deprecata per MySQL. Per cominciare, ti sarebbe di grande beneficio l'utilizzo di dichiarazioni preparate.