通过PHP / HTML表单更新SQL数据

时间:2015-02-28 16:40:01

标签: php html sql forms

我有以下表格,这是一个带有选项的选项,用户可以选择电子邮件,地址等选项。输入新数据以更新现有字段,通过匹配选择字段来完成一个名字。

    <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);

这里唯一的问题是,当由于某种原因更新一个字段时,另一个字段变空,任何想法出错的地方?

1 个答案:

答案 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);
}