我尝试根据用户操作更新表格请帮助,当我提交查询时如果用户选择编辑,则会发生更新表格应该更新表格我做错了什么?
if ($action == "edit"){
$edit = $_POST['edit'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$sql=mysql_query("select * from user where id='$id'");
while ($row=mysql_fetch_array($sql))
{
$id = $row['id'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$email = $row['email'];
$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'");
echo("<form name='edit' method='post' action='?action=edit'>");
echo("<input type='hidden' name='?action=edit'>");
echo("<table class=main cellspacing=0 cellpadding=5 >");
echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>");
echo("<tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr>");
echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>");
echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>");
echo("</table>");
}
}
答案 0 :(得分:0)
您正在使用您正在提取的结果更新数据库。
您需要在选择行之前更新数据库:
一些注意事项:您没有在表单中设置id
(可能将其设为隐藏输入)。我看到的最大问题是您最初没有设置ID(即没有$ _POST数据时)。
if($_POST){
$id = $_POST['id'];
$edit = $_POST['edit'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'");
}
$sql=mysql_query("select * from user where id='$id'");
while ($row=mysql_fetch_array($sql)){
$id = $row['id'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$email = $row['email'];
echo("<form name='edit' method='post' action='?action=edit'>");
echo("<input type='hidden' name='?action=edit'>");
echo("<table class=main cellspacing=0 cellpadding=5 >");
echo("<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>");
echo("<tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr>");
echo("<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>");
echo("<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>");
echo("</table>");
}
答案 1 :(得分:0)
您应该检查表格是否由用户发送
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$id = $_POST['id'];
$edit = $_POST['edit'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id='$id'");
}
同时检查您的安全性,使用mysql_real_escape_string
你也可以让你的支票更大,检查是否按下提交按钮等...