sql >> Base de Datos >  >> RDS >> Mysql

Cómo actualizar 3 columnas de tablas mientras solo una columna es visible en la página

No actualice las columnas que no están destinadas a la actualización. Por ejemplo, si se seleccionó el mensaje tradicional, solo actualizaría esta columna. Probablemente usaría consultas separadas aquí.

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

Tenga en cuenta que creo que está utilizando una API PHP muy antigua y obsoleta para MySQL. Para empezar, te beneficiaría mucho usar declaraciones preparadas.