更新记录

时间:2017-10-04 00:52:19

标签: php forms mysqli edit

我需要创建一个表单来更新数据。我已经创建了我的表单并进行了我的PHP编码,没有出现错误,但数据没有更新。

点击提交后,没有错误消息,而是有一条成功的消息,说明我的记录在未更新时已更新。

我仍然是一名刚接触过php的学生,有人可以帮助我查看我的编码,看看我错过了什么吗?非常感谢你。

我很感激你能给予的任何帮助。到目前为止,我已经得到了这个东西,但我无法让它更新记录。

>>>编辑<<<

我找到了这个问题的解决方案,我的答案如下:

Page9.php:

<?php
require('db.php');
include("auth.php");
$id=$_REQUEST['id'];
$query = "SELECT * from new_record where id='".$id."'"; 
$result = mysqli_query($con, $query) or die ( mysqli_error());
$row = mysqli_fetch_assoc($result);
?>


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Update Record</title>
    <link rel="stylesheet" href="css/style.css" />
    </head>

        <body>
        <div class="form">
            <p><a href="dashboard.php">Dashboard</a> 
            | <a href="insert.php">Insert New Record</a> 
            | <a href="logout.php">Logout</a></p>
            <h1>Update Record</h1>

            <?php
            $status = "";
            if(isset($_POST['new']) && $_POST['new']==1)
            {
            $id=$_REQUEST['id'];
            $trn_date = date("Y-m-d H:i:s");
            $name =$_REQUEST['name'];
            $age =$_REQUEST['age'];
            $submittedby = $_SESSION["username"];

            $update="update new_record set trn_date='".$trn_date."', name='".$name."', age='".$age."', submittedby='".$submittedby."' where id='".$id."'";

            mysqli_query($con, $update) or die(mysqli_error());

            $status = "Record Updated Successfully. </br></br>
            <a href='view.php'>View Updated Record</a>";
            echo '<p style="color:#FF0000;">'.$status.'</p>';
            }else {
            ?>

            <div>
                <form name="form" method="post" action=""> 

                <input type="hidden" name="new" value="1" />

                <input name="id" type="hidden" value="<?php echo $row['id'];?>" />

                <p><input type="text" name="name" placeholder="Enter Name" required value="<?php echo $row['name'];?>" /></p>

                <p><input type="text" name="age" placeholder="Enter Age" required value="<?php echo $row['age'];?>" /></p>

                <p><input name="submit" type="submit" value="Update" /></p>

                </form>

            <?php } ?>
            </div>
        </div>
        </body>
        </html>

致谢: http://www.allphptricks.com/simple-user-registration-login-script-in-php-and-mysqli/

我认为以上链接适合刚刚开始使用php的新学生。

2 个答案:

答案 0 :(得分:1)

根据您发布的代码,永远不会设置$_GET参数noID。您没有在表单的action属性的URL中定义它,如果您想将其作为GET参数传递,则需要它。也就是说,您可能打算将其用作POST参数。无论哪种方式,它都没有设置。

这意味着您的SQL包含... WHERE noID = '',它很可能不匹配任何内容,因此不会更新任何内容。

此外,您对SQL injection持开放态度。您需要使用预准备语句,而不是将变量连接到查询中。请参阅How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

您应该使用POST来检索ID,因为HTML是通过POST方式发送的。

form action="page9.php" method="POST"