未获取查询结果.它不是真的,不是假的,而是空的


get no results for query. its not true,not false and to null

我做了一些查询来检查用户名和密码。当我输入正确的数据时,它可以正常工作,如果我输入正确的电子邮件和错误的密码,它可以正常工作,当我输入不存在的用户名时,我没有得到任何结果和白屏。现在回显命令跳转。它看起来像卡住了,没有错误。有什么想法吗?

if (isset($email) && isset($password)) {
        $query  = "SELECT * ";
                $query .= "FROM users ";
                $query .= "WHERE user_email = '{$email}' ";
                $query .= "LIMIT 1";
                $result = mysqli_query($connection, $query);

                if ($result) {
                    while ($row = mysqli_fetch_assoc($result)) {
                        if ($row["user_password"] == $password) {
                            echo json_encode($row);
                        } else {
                            echo ('{"user_id":"0","user_name":"","user_email":"","user_password":"","register_date":"2016-03-05","confirm":"0"}');
                        }
                    }

                } else {
                  echo("error");
                }
    } else {
        echo($result);
        echo("Missing Vars");
    }

我敢打赌"if ($result)"是正确的,但它永远不会进入while循环,因为没有行可以迭代。这将导致空白屏幕。尝试回显从数据库返回的内容,并回显每个嵌套以查看输出的内容。如下所示:

if ($result) {
  echo("if $result must be true because I made it in");
  while ($row = mysqli_fetch_assoc($result)) {
    echo("I made it in the while loop if there are rows in my result");
    if {
      echo("I made it in while's if");
      ...
    } else {
      echo("I made it in while's else");
      ...
    }
  }
} else {
  echo("if $result must be false because I didn't make it in");
  echo("error");
}

我敢打赌,使用上面的例子你会看到:

if $result must be true because I made it in

这就是你将看到的全部内容