无法更新表单数据

时间:2018-03-27 04:25:19

标签: php html forms

我正在尝试通过在表单上显示以前保存的数据来编辑表单数据,然后进行更新。它显示了保存在数据库中的表单上的数据,但是当我输入新数据时,它不会获得该行的id。我回显更新查询,它显示更改的值,但它显示id等于空。这是我编辑记录和更新的代码;编辑记录正在运行,但更新不是

    <?php

        include('connection.php');

        $id = ''; 
        if( isset( $_GET['id'])) {
            $id = $_GET['id']; 
        }

        $udfname = mysql_real_escape_string($_POST["udfname"]);
        $udlname = mysql_real_escape_string($_POST["udlname"]);
        $udpwd = mysql_real_escape_string($_POST["udpwd"]);
        $udeml = mysql_real_escape_string($_POST["udeml"]);
        $udnum = mysql_real_escape_string($_POST["udnum"]);

        $query="UPDATE form
                SET fname = '$udfname', lname = '$udlname', pwd = '$udpwd', eml = '$udeml', num = '$udnum' 
                WHERE id='$id'";

        $res= mysql_query($query);
        if($res){
            echo "<p> Record Updated<p>";        
        }else{
            echo "Problem updating record. MY SQL Error: " . mysql_error();
        }
    ?>

编辑记录表格:

    <?php
        include('connection.php');
        $id = (int)$_GET['id'];
        $query = mysql_query("SELECT * FROM form WHERE id = '$id'") or die(mysql_error());

        while($row = mysql_fetch_array($query)) {
            echo "";
            $fname = $row['fname'];
            $lname = $row['lname'];
            $pwd = $row['pwd'];
            $eml = $row['eml'];
            $num = $row['num'];        
        }
    ?>

<html>
    <head>
        <title>Edit</title>
        <script>
        '
        '
        Jquery code here
        '
        '
        </script>
    </head>
    <body>
        <form action="update.php" method="post">
            <input type="hidden" name="ID" value="<?=$id;?>">
            First Name: <input type="text" name="udfname" value="<?=$fname;?>"><br>
            Last Name: <input type="text" name="udlname" value="<?=$lname?>"><br>
            Password: <input type="text" name="udpwd" value="<?=$pwd?>"><br>
            Email: <input type="text" name="udeml" value="<?=$eml?>"><br>
            Contact Number: <input type="text" name="udnum" value="<?=$num?>"><br>
            <input type="Submit">
        </form>
    </body>
</html> 

3 个答案:

答案 0 :(得分:1)

在更新时,您的表单将使用POST请求提交。所以你需要使用POST方法获取ID。因此,要获取隐藏字段的ID,请更改以下代码:

$id = ''; 
if( isset( $_POST['ID'])) {
    $id = $_POST['ID']; 
}

答案 1 :(得分:0)

请尝试以下代码

if( isset( $_POST['id']) && $_POST['id']!=null) {
    $id = $_POST['id']; 
}

答案 2 :(得分:0)

亲爱的,我认为您使用post方法发送数据的方法存在问题,而且非常简单而非此代码

if( isset( $_GET['id'])) {
            $id = $_GET['id']; 
        }

if( isset( $_POST['id'])) {
            $id = $_POST['id']; 
        }

还有一件事是你正在使用数据库的mysql弃用函数,请使用pdo来实现这个或新的mysqli函数。