我正在尝试使用更新mysql数据的html表单。现在,我有这个代码(这也是一个表单操作),我也试图将它用作我更新的表单。因为我需要这个表单显示的数据,所以用户更容易只更新他们想要更新的内容。
这是尝试搜索数据的表单:
<form name="form1" method="post" action="new.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="16" style="background:#9ACD32; color:white; border:white 1px solid;
text-align: center"><strong><font size="3">ADMISSION INFORMATION SHEET</strong></td>
</tr>
<tr>
这是new.php(将根据输入的名字显示相应的数据。并且还会尝试作为更新过程的表单。
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Hospital", $con);
$result = mysql_query("SELECT * FROM t2 WHERE FIRSTNAME='{$_POST["fname"]}'");
?>
<table width="900" border="0" align="left" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="16" style="background:#9ACD32; color:white; border:white 1px solid; text-align: center"><strong><font size="3">ADMISSION INFORMATION SHEET</strong></td>
</tr>
<tr>
<?php while ( $row = mysql_fetch_array($result) ) { ?>
<form name="form1" method="post" action="update.php">
<td width="54"><font size="3">Hospital #</td>
<td width="3">:</td>
<td width="168"><input name="hnum" type="text" value="<?php echo $row["HOSPNUM"]; ?>">
</td>
这是我的update.php,
mysql_select_db("Hospital", $con);
mysql_query("UPDATE t2 SET HOSPNUM='$_POST[hnum]' ROOMNUM='$_POST[rnum]',
LASTNAME='$_POST[lname]', FIRSTNAME='$_POST[fname]', MIDNAME='$_POST[mname]',
CSTAT='$_POST[cs]' AGE='$_POST[age]', BDAY='$_POST[bday]', ADDRESS='$_POST[ad]',
STAT='$_POST[stats1]', STAT2'$_POST[stats2]', STAT3'$_POST[stats3]',
STAT4'$_POST[stats4]', STAT5'$_POST[stats5]', STAT6'$_POST[stats6]',
STAT7'$_POST[stats7]', STAT8'$_POST[stats8]', NURSE='$_POST[nurse]', TELNUM
='$_POST[telnum]'
WHERE FNAME ='$_POST[fname]'");
mysql_close($con);
?>
- 请帮助,我不知道它为什么不更新数据。
答案 0 :(得分:2)
错字,HOSPNUM和ROOMNUM之间缺少“,”:
SET HOSPNUM='$_POST[hnum]', ROOMNUM=
答案 1 :(得分:0)
以前的评论绝对正确。我建议使用PDO或MySQLi适配器,并使用准备好的语句将记录插入作为最低安全性。使用名字作为唯一标识符是个坏主意。表中没有主键列吗?
要回答您的实际问题,问题在于双引号字符串中的数组符号。您的陈述中也缺少几个等号。试试这个:
mysql_query("
UPDATE t2
SET HOSPNUM='" . mysql_real_escape_string($_POST['hnum']) . "',
ROOMNUM='" . mysql_real_escape_string($_POST['rnum']) . "',
LASTNAME='" . mysql_real_escape_string($_POST['lname']) . "',
FIRSTNAME='" . mysql_real_escape_string($_POST['fname']) . "',
MIDNAME='" . mysql_real_escape_string($_POST['mname']) . "',
CSTAT='" . mysql_real_escape_string($_POST['cs']) . "',
AGE='" . mysql_real_escape_string($_POST['age']) . "',
BDAY='" . mysql_real_escape_string($_POST['bday']) . "',
ADDRESS='" . mysql_real_escape_string($_POST['ad']) . "',
STAT='" . mysql_real_escape_string($_POST['stats1']) . "',
STAT2='" . mysql_real_escape_string($_POST['stats2']) . "',
STAT3='" . mysql_real_escape_string($_POST['stats3']) . "',
STAT4='" . mysql_real_escape_string($_POST['stats4']) . "',
STAT5='" . mysql_real_escape_string($_POST['stats5']) . "',
STAT6='" . mysql_real_escape_string($_POST['stats6']) . "',
STAT7='" . mysql_real_escape_string($_POST['stats7']) . "',
STAT8='" . mysql_real_escape_string($_POST['stats8']) . "',
NURSE='" . mysql_real_escape_string($_POST['nurse']) . "',
TELNUM='" . mysql_real_escape_string($_POST['telnum']) . "'
WHERE FNAME='" . mysql_real_escape_string($_POST['fname']) . "'
");