无法将数据中的新密钥更新到数据库中(使用ID选择)

时间:2016-05-17 03:05:33

标签: php mysqli

这是我从数据库调用的表。 enter image description here

当我点击编辑按钮时,它会将我重定向到此页面(这是编辑页面):

enter image description here

文本字段中显示的数据基于用户ID。但是当我点击更新按钮时,数据不会更新到数据库。

以下代码是我如何根据ID获取表格数据并将其显示在编辑页面的文本字段中:

<div id="table">
<div id="title">
<a>EDIT USER DETAILS</a>
</div>

<?php
        if( isset($_GET['userId']) )
        {
            $id = $_GET['userId'];
            $catchsql = "SELECT * FROM tbluser WHERE userId='$id'";
            $res= mysqli_query($con,$catchsql);
            $row= mysqli_fetch_array($res);
        }
        else {
            echo"Data Not Found !";
        }

?>

<form action="edit.php" method="POST">
<div id ="newform">
NAME: <input type="text" name="newname" value="<?php echo $row['userNm']; ?>" style="background: #fff; color:#000;"/>
FULL NAME:<input type="text" name="newfullname" value="<?php echo$row['userFullNm']; ?>" style="background: #fff; color:#000;"/><br />
<br>
EMAIL:<input type="text" name="newemail" value="<?php echo$row['userEmail']; ?>" style="background: #fff; color:#000;"/>
CONTACT:<input type="text" name="newcontact" value="<?php echo$row['userPhone']; ?>" style="background: #fff; color:#000;"/><br />
<br>
USER LEVEL: <input type="text" name="newlevel" value="<?php echo$row['userLvlId']; ?>" style="background: #fff; color:#000;"/>
STATUS:<input type="text" name="newstatus" value="<?php echo$row['userStatus']; ?>" style="background: #fff; color:#000; "/><br />
</form>
<br>
<br>
<br>
<br>
<a href ="user.php"><input type="button" name="SUBMIT" value="UPDATE" action="update.php" style="font-size:16px;text-align:center; border-top-width: 0px; border-right-width: 0.5px; border-bottom-width: 0.5px; border-left-width: 0.5px; width: "></a>
</div>

这是我的更新代码:     

    if( isset($_POST['newname']) || isset($_POST['newfullname']) || isset($_POST['newemail']) || isset($_POST['newcontact']) || isset($_POST['newlevel']) || isset($_POST['newstatus']))
{
    $newName = $_POST['newname'];
    $newfullname= $_POST['newfullname'];
    $newemail = $_POST['newemail'];
    $newcontact = $_POST['newcontact'];
    $newlevel = $_POST['newlevel'];
    $newstatus = $_POST['newstatus'];
    $id      = $_POST['id'];
    $sql = "UPDATE tbluser SET userNm='$newName', userFullNm=$newfullname, userEmail=$newemail, userPhone=$newcontact, userLvlId=$newlevel, userStatus=$newstatus WHERE userId='$id'";
    $res     = mysql_query($sql) or die ("Could not update".mysql_error());


}
?>

请问我提供的有关我的问题的信息是否不清楚。谢谢 !

3 个答案:

答案 0 :(得分:1)

一些建议

  1. 删除锚标记,将没有数据的页面重定向到user.php

  2. 同时从更新输入中删除操作并将类型保留为提交,并确保表单标记具有正确的文件名。

  3. 你应该使用&amp;&amp;不是||检查岗位变量。

  4. 在所有地方空间黑白回声和php变量。

    '即echo $ row ['userPhone'];'

  5. 将查询更改为其他建议,请使用引号。

答案 1 :(得分:0)

尝试$ sql =&#34; UPDATE tbluser SET userNm =&#39; $ newName&#39;,userFullNm =&#39; $ newfullname&#39;,userEmail =&#39; $ newemail&#39;, userPhone =&#39; $ newcontact&#39;,userLvlId =&#39; $ newlevel&#39;,userStatus =&#39; $ newstatus&#39;在哪里userId =&#39; $ id&#39;&#34;;

我把用户输入的php变量放在单引号中。此外,您可能希望使用mysqli,因为不推荐使用mysql,再次阻止sql注入并使用预准备语句

答案 2 :(得分:0)

将$ catchsql更改为:

$catchsql = "SELECT * FROM tbluser WHERE userId=".$id;

将$ sql更改为:

$sql = "UPDATE tbluser SET userNm='".$newName."', userFullNm='".$newfullname."', userEmail='".$newemail."', userPhone='".$newcontact."', userLvlId='".$newlevel."', userStatus='".$newstatus."' WHERE userId=".$id;