我有一个链接<a href='test.php?action=edit&id=$id'>Edit</a>
如果用户点击此链接,则会显示更新表单,供他/她更新
$action=="edit";
是在这种情况下执行的操作,它必须更新,如何在代码
中没有if ($action == "edit"){
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$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($result) or die (mysql_error());
}
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");
$sql = mysql_query($result) or die (mysql_error());
ho("<form name='edit' method='post' action='?action=edit'>");
echo("<input type='hidden' name='?action=edit'>");
echo("<table class=main cellspacing=0 cellpadding=5 width=50%>");
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>");
}
}
有没有办法让这个查询返回一个值,因为它似乎不是工作...
我怀疑这一行
$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' WHERE id=$id");
$sql = mysql_query($result) or die (mysql_error());
因为我添加了
where id = '$id'
它ruturns你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“1”附近使用正确的语法
如果删除
where id = $id
它返回“查询为空”我需要帮助我一直在努力这不正常
答案 0 :(得分:1)
而不是:
$result=mysql_query("UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' where id = '$id'");
$sql = mysql_query($result) or die (mysql_error());
你应该这样做:
$sql = "UPDATE user SET first_name='$first_name',last_name='$last_name',email='$email' where id = '$id'");
mysql_query($sql) or die (mysql_error());
答案 1 :(得分:0)
执行以下任一操作:
变化
if ($action == "edit"){
到
if ($_GET['action'] == "edit"){
并删除
echo("<input type='hidden' name='?action=edit'>");
<强> UPADTE 强>
测试此而不是所有代码:
if ($_GET['action'] == "edit"){
if ($_POST['performEdit'] == 'Yes') {
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$id = $_POST['id'];
$result=mysql_query("UPDATE `user` SET `first_name`='$first_name', `last_name`='$last_name', `email`='$email' WHERE `id` = '$id'");
if(!$result){
echo mysql_error();
}
}
$row=mysql_fetch_array(mysql_query("SELECT * FROM `user` WHERE `id`='$id' LIMIT 0, 1"));
$id = $row['id'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$email = $row['email'];
echo "<form name='edit' method='post' action='test.php?action=edit'>
<input type='hidden' name='performEdit' value='Yes'>
<input type='hidden' name='id' value='$id'>
<table class=main cellspacing=0 cellpadding=5 width=50%>
<tr><td>Name: </td><td align='right'><input type='text' name='first_name' value='$first_name'></td></tr>
<tr><td>Surname: </td><td align='right'><input type='text' name='last_name' value='$last_name'></td></tr>
<tr><td>Email: </td><td align='right'><input type='text' name='email' value='$email'></td></tr>
<tr><td></td><td><div align='right'><input type='submit'></div></td></tr>
</table>
</form>");
}
一般情况下,不要再使用MySQL了,而是使用MySQLi。