Php 如何在页面只显示一列的情况下更新3个表列
这是一个表列,显示消息取决于用户在数据库中首选的语言选择。如果首选语言为英语,则仅限英语 消息将显示 在数据库中,有3列存储了3种不同语言的消息类型Php 如何在页面只显示一列的情况下更新3个表列,php,mysql,Php,Mysql,这是一个表列,显示消息取决于用户在数据库中首选的语言选择。如果首选语言为英语,则仅限英语 消息将显示 在数据库中,有3列存储了3种不同语言的消息类型 <?php $possibleLang = ["繁體","简体","ENG"]; $testAreaField = ["traditionalmessage","simplifiedmessage","engmessage"]; $treatmentName = ["vaccinename1","vaccinename2","vacc
<?php
$possibleLang = ["繁體","简体","ENG"];
$testAreaField = ["traditionalmessage","simplifiedmessage","engmessage"];
$treatmentName = ["vaccinename1","vaccinename2","vaccinename3"];
$treatmentNameSuffix = ["\n下一個注射期為:","\n下一个注射期为:","\nNext
injection period will be:"];
$index = array_search($row['language'],$possibleLang);
?>
<td>
<textarea rows="3" cols="18" class="url" name="<?php echo
$testAreaField[$index]; ?>[]" data-value="<?php echo
$row[$treatmentName[$index]] . $treatmentNameSuffix[$index]; ?>"><?php echo
$row[$testAreaField[$index]]; ?>
</textarea>
</td>
问题是每当我单击save(保存)时,消息中只有一列被保存,其他两列在数据库中被更新为NULL。理想的结果是更新两个3列,而页面上只有1列可见。
任何想法。提前感谢请勿更新未作为更新目标的列。例如,如果选择了传统消息,则仅更新此列。我可能会在这里使用单独的查询
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());
}
}
请注意,我相信您正在使用一个非常旧的、不推荐使用的PHP API for MySQL。对于初学者来说,使用预先准备好的语句会让您受益匪浅。您检查过变量是否有数据吗?。您好,我尝试过用您的解决方案更新我的代码,但由于某些原因,结果与以前一样,其他2列仍然更新为null,请查看,感谢您检查null和空字符串。
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());
}
}