2

我有一个链接<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

它返回“查询为空”我需要帮助我一直在努力解决它无法正常工作

4

2 回答 2

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());
于 2013-05-18T20:25:08.460 回答
0

执行以下任一操作:

改变

if ($action == "edit"){

if ($_GET['action'] == "edit"){

并删除

echo("<input type='hidden' name='?action=edit'>");

更新

测试这个而不是你所有的代码:

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。

于 2013-05-18T20:44:12.543 回答