偏移量0对于MySQL结果索引10无效,无法从MySQL php检索数据

偏移量0对于MySQL结果索引10无效,无法从MySQL php检索数据,php,html,mysql,sql,json,Php,Html,Mysql,Sql,Json,在脚本中,无论输入正确或错误的用户名,结果都是一样的 是这样的: {success:1,message:Login successfully!,用户:{customerID:null,firstname:null,lastname:null,address:null,postcode:null,phone:null}} 我尝试使用mysql_data_seek,它返回的偏移量0对于mysql结果索引10无效 我猜mysql\u查询没有获取任何内容 有人能帮我解决这个问题吗 <?PHP

在脚本中,无论输入正确或错误的用户名,结果都是一样的

是这样的:

{success:1,message:Login successfully!,用户:{customerID:null,firstname:null,lastname:null,address:null,postcode:null,phone:null}}

我尝试使用mysql_data_seek,它返回的偏移量0对于mysql结果索引10无效

我猜mysql\u查询没有获取任何内容

有人能帮我解决这个问题吗

 <?PHP

$username = "";
$password = "";
$re = array();


if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$username = $_POST['username'];
$password = $_POST['password'];

$username = htmlspecialchars($username);
$password = htmlspecialchars($password);

//==========================================
//  CONNECT TO THE LOCAL DATABASE
//==========================================
$dbusername = ""; 
    $dbpassword = ""; 
    $host = ""; 
    $dbname = "";

$db_handle = mysql_connect($host, $dbusername, $dbpassword);
$db_found = mysql_select_db($dbname, $db_handle);

if ($db_found) {

    $username = quote_smart($username, $db_handle);
    $password = quote_smart($password, $db_handle);

    $query = "SELECT * FROM Customer WHERE username = $username AND password = md5($password)";
    $info = mysql_query($query);

//====================================================
//  CHECK TO SEE IF THE $result VARIABLE IS TRUE
//====================================================

    if ($info) {
$user = mysql_fetch_array( $info );
echo $user['firstname'];
    $re["success"]=1;
    $re["message"] = "Login successfully!";
//add parameters that will return to android
    $re["user"]["customerID"]=$user['customerID'];
    $re["user"]["firstname"]=$user['firstname'];
    $re["user"]["lastname"] = $user['lastname'];
    $re["user"]["address"]=$user['address'];
    $re["user"]["postcode"]=$user['postcode'];
    $re["user"]["phone"]=$user['phone'];

    $re= json_encode($re);
    echo $re;

        session_start();
        $_SESSION['login'] = "1";
        $_SESSION["re"]=$re;
        //header ("Location: userdata.php");

    }
    else {
    $re["success"]=0;
    $re["message"] = "User Not Found";
    $re = json_encode($re);
    echo $re;
    }
}

else {
    $re["success"]=0;
    $re["message"] = "Can not connect to database";
    $re= json_encode($re);
    echo $re;
}

}


?>


<html>
<head>
<title>Basic Login Script</title>
</head>
<body>

<FORM NAME ="Customer Login" METHOD ="POST" ACTION ="login.php">

Username: <INPUT TYPE = 'TEXT' Name ='username'  value="<?PHP print $username;?>"     maxlength="45">
Password: <INPUT TYPE = 'TEXT' Name ='password'  value="<?PHP print $password;?>"  maxlength="45">

<P align = center>
<INPUT TYPE = "Submit" Name = "Submit"  VALUE = "Login">
</P>

</FORM>

</body>
</html>
您需要检查是否有任何行返回

此外,会话_start必须位于文件的顶部

session_start();
$query = "SELECT * FROM Customer WHERE username = $username AND password = md5($password) LIMIT 1";
$info = mysql_query($query);
$found = mysql_num_rows($info);

if($found!=0)
{
    $user = mysql_fetch_array( $info );
    echo $user['firstname'];
    $re["success"]=1;
    $re["message"] = "Login successfully!";
    //add parameters that will return to android
    $re["user"]["customerID"]=$user['customerID'];
    $re["user"]["firstname"]=$user['firstname'];
    $re["user"]["lastname"] = $user['lastname'];
    $re["user"]["address"]=$user['address'];
    $re["user"]["postcode"]=$user['postcode'];
    $re["user"]["phone"]=$user['phone'];

    $re= json_encode($re);
    echo $re;

    $_SESSION['login'] = "1";
    $_SESSION["re"]=$re;
    //header ("Location: userdata.php");
}

注意:mysql_*函数已弃用。尽快移动mysqli_*函数

你能试试这个吗,添加行数检查mysql_num_rows$info


注意:如果结果集为空,请使用mysqli_*函数,而不是不推荐使用的mysql_*函数。mysql_数据搜索将失败,并显示E_警告。我认为这是在您的情况下发生的,因为在调用mysql\u data\u seek之前,您没有检查结果集是否为空


始终检查结果中的行数,如果行数>=1,则可以安全地调用mysql\u data\u seek

我添加了mysql\u num\u rows$info;结果是{success:0,message:User Not Found},无论输入是什么。mysql\u查询不会向我返回任何内容。如何修复此问题?echo$query string并在mysql查询窗口中运行,以检查表customer是否有数据$info=mysql\u query$query或dieMySQL ERROR:.mysql\u ERROR;告诉我错误信息当然,它有数据。我已经仔细检查过了。我添加了$info=mysql\u query$query或diemsql错误:.mysql\u ERROR;但一切都没有改变。仍然{success:0,message:User Not Found}我添加了mysql\u num\u rows$info;结果是{success:0,message:User Not Found},无论输入是什么。mysql\u查询不会向我返回任何内容。我怎样才能解决这个问题?
        $query = "SELECT * FROM Customer WHERE username = '".$username."' AND password = '".md5($password)."' ";

        $info = mysql_query($query) or die("MySQL ERROR: ".mysql_error()); 

        $count = mysql_num_rows($info); // added rows count check

        if($count>0){       

             $user = mysql_fetch_array( $info );
            echo $user['firstname'];
            $re["success"]=1;
            $re["message"] = "Login successfully!";
            //add parameters that will return to android
            $re["user"]["customerID"]=$user['customerID'];
            $re["user"]["firstname"]=$user['firstname'];
            $re["user"]["lastname"] = $user['lastname'];
            $re["user"]["address"]=$user['address'];
            $re["user"]["postcode"]=$user['postcode'];
            $re["user"]["phone"]=$user['phone'];    
            session_start();
            $_SESSION['login'] = "1";
            $_SESSION["re"]=$re;
            //header ("Location: userdata.php");
            $re= json_encode($re);
            echo $re;

        }
        else {
            $re["success"]=0;
            $re["message"] = "User Not Found";
            $re = json_encode($re);
            echo $re;
        }