我需要创建一个表单来更新数据。我已经创建了我的表单并进行了我的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的新学生。
答案 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"