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