我有以下表格,这是一个带有选项的选项,用户可以选择电子邮件,地址等选项。输入新数据以更新现有字段,通过匹配选择字段来完成一个名字。
<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);
这里唯一的问题是,当由于某种原因更新一个字段时,另一个字段变空,任何想法出错的地方?
答案 0 :(得分:1)
您需要在代码块周围放置括号,否则将始终执行第二行。
这里的问题是即使updateAddress为空,该变量仍将设置。所以isset
是一种测试它是否为空的坏方法。
所以你应该添加!empty()
或!= ''
(使用empty()你必须有一个高于5.4的PHP版本)
以下是一个例子:
if(isset($_POST['sUpdateEmail']) && $_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']) && $_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);
}