0

这是尝试更新mysql数据错误的代码,说明未定义变量

mysql_connect ("localhost", "root", "");
mysql_select_db("supplierdetails");
 $con = mysql_connect("localhost", "root", "");
   if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }
//Run a query 
    $result = mysql_query ("SELECT * FROM users WHERE id= '$id'");
    while ($row = mysql_fetch_array($result))
   {
$username=$row['username'];
$password=$row['password'];
  }
$query = "UPDATE users SET username = '$username', password = '$password' WHERE id           = '$id'";
$result = @mysql_query($query);
//Check whether the query was successful or not
if($result) {  
    header("message= Users Updated");
}else {
    die("Query failed");
}
?>
4

3 回答 3

0

你用过 2connect没必要while你忘了$id

    $con = mysql_connect("localhost", "root", "");
    mysql_select_db("supplierdetails");

       if (!$con)
        {
        die('Could not connect: ' . mysql_error());
        }

    $id = $_POST['id'];        
    $username=$_POST['username'];
    $password=$_POST['password'];

    $query = "UPDATE users SET username = '".$username."', password = '".$password."' WHERE id = '".$id."'";
    $result = mysql_query($query);
    //Check whether the query was successful or not
    if($result) {  
        echo "message= Users Updated";
    }else {
        die("Query failed");
    }
    ?>
于 2012-04-10T09:25:37.560 回答
0

你错过了 $id 价值?

并且可以echo用来调试或检查脚本结果,而不是header

http://php.net/manual/en/function.header.php

于 2012-04-10T09:26:25.910 回答
0

请更具体地说明未定义的变量。

在您发布的代码中$username,只有在返回结果$password时才设置$result,如果没有,那么您的while循环将不会运行,因此$username永远$password不会被设置。

$id看起来好像也没有设置,除非这是在您包含在问题中的代码之外设置的。

希望这可以帮助 :)

于 2012-04-10T09:26:49.837 回答