Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法更新表单数据_Php_Html_Forms - Fatal编程技术网

Php 无法更新表单数据

Php 无法更新表单数据,php,html,forms,Php,Html,Forms,我试图通过在表单上显示以前保存的数据来编辑表单数据,然后对其进行更新。它显示保存在数据库中的表单上的数据,但当我输入新数据时,它不会获取行的id。我回显更新查询,它显示更改的值,但它显示id等于空。这是我编辑记录和更新的代码;编辑记录正在工作,但更新不工作: <?php include('connection.php'); $id = ''; if( isset( $_GET['id'])) { $id

我试图通过在表单上显示以前保存的数据来编辑表单数据,然后对其进行更新。它显示保存在数据库中的表单上的数据,但当我输入新数据时,它不会获取行的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> 

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

$id = ''; 
if( isset( $_POST['ID'])) {
    $id = $_POST['ID']; 
}
请尝试下面的代码

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

亲爱的,我认为你的方法的问题是你用post方法发送数据,它非常简单,而不是这个代码

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


还有一件事是,您正在为数据库使用mysql不推荐的函数,请为这个或新的mysqli函数使用pdo

停止在第一个文件中使用不推荐的API mysqlIn编写新代码,将所有$\u GET['id']替换为$\u POST['id']仍然没有结果i使用id而不是更新的IDAnswer。检查一下。因为变量是区分大小写的,所以隐藏的字段名是ID,所以必须经常使用它。它起作用了;我拿的是身份证而不是身份证。太好了。很高兴帮助@CaraJ。我看到你不接受任何问题的答案。若答案解决了你们的问题,你们需要接受正确的答案,我很抱歉,我对这个网站了解不多,这就是为什么
if( isset( $_POST['id'])) {
            $id = $_POST['id']; 
        }