gpt4 book ai didi

php - 如何更新 3 个表列,而页面只有一列可见

转载 作者:行者123 更新时间:2023-11-28 23:10:18 26 4
gpt4 key购买 nike

这是一个表列,显示消息取决于用户在数据库中的首选语言选择。例如,如果首选语言是 ENG 只有 eng消息将显示PS:在数据库中,有3列存储了3种不同语言的消息

 <?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>

此表位于显示来自数据库的数据并将数据更新回数据库的编辑页面。

 if (isset($_POST['submit'])){
foreach ($_POST['patientid'] as $index => $patientid) {
$id = mysql_real_escape_string($_POST['id'][$index]);
$data1 = mysql_real_escape_string($patientid);
$data17 = mysql_real_escape_string($_POST['patienthkid'][$index]);

$data2 = mysql_real_escape_string($_POST['vaccineid'][$index]);
$data5 = mysql_real_escape_string($_POST['vaccinename3'][$index]);
$data6 = mysql_real_escape_string($_POST['totalnoofinjection'][$index]);
$data7 = mysql_real_escape_string($_POST['nthinjection'][$index]);
$data8 = mysql_real_escape_string($_POST['date'][$index]);
$data9 = mysql_real_escape_string($_POST['nextdate'][$index]);
$data10 = mysql_real_escape_string($_POST['skip'][$index]);
$data11 = mysql_real_escape_string($_POST['language'][$index]);
$data12 = mysql_real_escape_string($_POST['traditionalmessage'][$index]);
$data13 = mysql_real_escape_string($_POST['simplifiedmessage'][$index]);
$data14 = mysql_real_escape_string($_POST['engmessage'][$index]);
$data15 = mysql_real_escape_string($_POST['status'][$index]);
$data16 = mysql_real_escape_string($_POST['nurse'][$index]);


if ($data12 != null) {
mysql_query("UPDATE patientvaccinedetail SET patientid
='$data1',patienthkid
='$data17',vaccineid='$data2',vaccinename3='$data5',
totalnoofinjection='$data6',nthinjection='$data7',
date='$data8',nextdate='$data9',skip='$data10',language='$data11',
traditionalmessage='$data12',status='$data15',nurse='$data16' WHERE
id=$id") or die(mysql_error());
}
else if ($data13 != null) {
mysql_query("UPDATE patientvaccinedetail SET patientid
='$data1',patienthkid
='$data17',vaccineid='$data2',vaccinename3='$data5',
totalnoofinjection='$data6',
nthinjection='$data7',date='$data8',nextdate='$data9',
skip='$data10',language='$data11',
simplifiedmessage='$data13',status='$data15',nurse='$data16' WHERE
id=$id") or die(mysql_error());
}
else if ($data14 != null) {
mysql_query("UPDATE patientvaccinedetail SET patientid
='$data1',patienthkid ='$data17',vaccineid='$data2',
vaccinename3='$data5', totalnoofinjection='$data6',
nthinjection='$data7',date='$data8',nextdate='$data9',
skip='$data10',language='$data11',
engmessage='$data14',status='$data15',nurse='$data16' WHERE id=$id")
or die(mysql_error());
}

}
}

问题是每当我单击“保存”时,消息的只有一个列被保存,其他两列在数据库中更新为 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());
}
}

请注意,我相信您正在为 MySQL 使用非常古老且已弃用的 PHP API。对于初学者来说,使用准备好的语句会让你受益匪浅。

关于php - 如何更新 3 个表列,而页面只有一列可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46166855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com