Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment mettre à jour 3 colonnes de tableaux alors qu'une seule colonne est visible sur la page

Ne mettez pas à jour les colonnes qui ne sont pas ciblées pour la mise à jour. Par exemple, si le message traditionnel était sélectionné, vous ne mettriez à jour que cette colonne. J'utiliserais probablement des requêtes séparées ici.

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

Notez que je pense que vous utilisez une API PHP très ancienne et obsolète pour MySQL. Pour commencer, il vous serait très avantageux d'utiliser des déclarations préparées.