我正在尝试使用更新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>
<td width="54"><font size="3">Hospital #</td>
<td width="3">:</td>
<td width="168"><input name="hnum" type="text" id="hospnum"></td>
<td width="41"><font size="3">Room #</td>
<td width="3">:</td>
<td width="168"><input name="rnum" type="text" id="rnum"></td>
<td width="67"><font size="3">Admission Date</td>
<td width="3">:</td>
<td width="168"><input name="ad8" type="text" id="ad8"></td>
<td width="67"><font size="3">Admission Time</td>
<td width="3">:</td>
<td width="168"><input name="adtym" type="text" id="adtym"></td>
</tr>
<tr>
<td><font size="3">Last Name</td>
<td>:</td>
<td><input name="lname" type="text" id="lname"></td>
<td><font size="3">First Name</td>
<td>:</td>
<td><input name="fname" type="text" id="fname"></td>
<td><font size="3">Middle Name</td>
<td>:</td>
<td><input name="mname" type="text" id="mname"></td>
</tr>
<tr>
<td><font size="3">Civil Status</td>
<td>:</td>
<td><input name="cs" type="text" id="cs"></td>
<td><font size="3">Age</td>
<td>:</td>
<td><input name="age" type="text" id="age"></td>
<td><font size="3">Birthday</td>
<td>:</td>
<td><input name="bday" type="text" id="bday"></td>
</tr>
<tr>
<td><font size="3">Address</td>
<td>:</td>
<td><input name="ad" type="text" id="ad"></td>
<td><font size="3">Telephone #</td>
<td>:</td>
<td><input name="telnum" type="text" id="telnum"></td>
<td width="23"><font size="3">Sex</td>
<td width="3">:</td>
<td width="174"><input name="sex" type="text" id="sex"></td>
</tr>
<tr>
<td><font size="3">Pls. Check</td>
<td>:</td>
<td><input name="stats1" type="checkbox" id="SSS" value="SSS">SSS</td>
<td><font size="3"></td>
<td>:</td>
<td><input name="stats2" type="checkbox" id="nonmed" value="NonMedicare">Non Medicare</td>
<td><font size="3"></td>
<td>:</td>
<td><input name="stats3" type="checkbox" id="sh" value="stockholder">Stockholder</td>
</tr>
<tr>
<td><font size="3"></td>
<td></td>
<td><input name="stats4" type="checkbox" id="gsis" value="GSIS">GSIS</td>
<td><font size="3"></td>
<td></td>
<td><input name="stats5" type="checkbox" id="senior" value="seniorcitizen">Senior-Citizen</td>
<tr>
<td><font size="3"></td>
<td></td>
<td><input name="stats6" type="checkbox" id="dep" value="dependent">Dependent</td>
<td><font size="3"></td>
<td></td>
<td><input name="stats7" type="checkbox" id="emp" value="employee">Employee</td>
<td><font size="3"></td>
<td></td>
<td><input name="stats8" type="text" id="" value="">Others</td>
</tr>
<tr>
<td><font size="3">Admitting/Attending Nurse</td>
<td>:</td>
<td><input name="nurse" type="text" id="nurse"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Search"></td>
</form>
</tr>
</table>
</td>
</form>
</tr>
</table>
这是new.php(将根据输入的名字显示相应的数据。并且还会尝试作为更新过程的表单。
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Hospital", $con);
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']) . "'
");
mysql_close($con);
?>
请帮忙,我只是一个初学者,我想学习
答案 0 :(得分:1)
您的表格是正确的。很少有东西丢失。
首先,您的更新查询根据错误的用户名更新记录(可能有多个记录的名字相同),因此请使用用户主键。(例如UserID)。
另一个重要的事情是在更新检查之前是请求是GET还是POST。
答案 1 :(得分:1)
为什么在SQL中的TELNUM和FNAME值之前有两个撇号?这将使值为零长度字符串,后跟垃圾,这将使查询无效。
答案 2 :(得分:0)
您正在尝试做多件事,让您的方法变得简单
搜索用户名
像这样:
if(isset($_POST['search'])) { $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']."'); $data = mysql_fetch_assoc($result); }
用于显示记录的表格在这里
然后将此表单发布到更新用户记录的新脚本(update.php)。 如果您遇到问题,请告诉我。