【发布时间】:2015-02-28 16:40:00
【问题描述】:
我有以下表单,它是一个带有选项的选择,用户在其中选择一个选项,例如电子邮件、地址等。输入新数据以更新现有字段,这是通过将字段匹配到名字。
<form action="sUpdateResponse.php" method="post">
<select id="sRetrieveUpdate" name="sRetrieveUpdate" onchange=";">
<option value='' disabled selected style='display:none;'>Select Field To Update</option>
<option value="address">Address</option>
<option value="email">Email</option>
</select><br>
<div id="box-1"><input type="text" id="address" name="sUpdateAddress" placeholder="Enter New Address..."
onClick="$(this).removeClass('placeholderclass')" class="dateclass placeholderclass"></input></div>
<div id="box-2"><input type="text" id="email" name="sUpdateEmail" placeholder="Enter New Email..."
onClick="$(this).removeClass('placeholderclass')" class="dateclass placeholderclass"></input></div>
For the staff entry
where the name matches...<br>
<input type="text" placeholder="Enter Forename..." name="sUpdateFN">
<input type="text" placeholder="Enter Surname..." name="sUpdateSN">
<input type="submit" value="Update Record" name="sRetrieveUpdate">
</form>
然后响应检查是否选择了地址或电子邮件,并更新名字和姓氏与输入的匹配的位置。
if(isset($_POST['sUpdateEmail']) && isset($_POST['sUpdateFN']) && isset($_POST['sUpdateSN']))
$query = "UPDATE staffData SET sEmail = '".$_POST['sUpdateEmail']."' WHERE sFN = '".$_POST['sUpdateFN']."' AND sSN = '".$_POST['sUpdateSN']."'";
$result = mysql_query($query);
if(isset($_POST['sUpdateAddress']) && isset($_POST['sUpdateFN']) && isset($_POST['sUpdateSN']))
$query = "UPDATE staffData SET sAddress = '".$_POST['sUpdateAddress']."' WHERE sFN = '".$_POST['sUpdateFN']."' AND sSN = '".$_POST['sUpdateSN']."'";
$result = mysql_query($query);
这里唯一的问题是,当由于某种原因更新一个字段时,另一个字段变为空,知道哪里出错了吗?
【问题讨论】:
-
这不是唯一的问题,您应该使用
mysqli和准备好的语句。这里有很多安全问题。 -
@ArianFaurtosh 这永远不会被使用,所以安全不是问题,只是试图让这个概念发挥作用