使用if num_rows,但不会运行

时间:2017-08-22 08:17:28

标签: javascript php mysql

我不确定这是否重复,但我找不到任何相关内容。 我有一个简单的查询输入登录,当用户名和密码都正确时,它将运行IF发现的第1行。然而,当我得到密码或用户名错误时,它应该运行ELSE。可悲的是,情况并非如此,我得到了一个没有任何错误的白屏。

代码:

$result = $dbcon->query("SELECT * FROM PT_USERS WHERE Username = '$gebruiker' AND Password = '$wachtwoord'");
    while($row = $result->fetch_assoc()) {
        if($result->num_rows == 1) {
        $_SESSION['PT_USERS']       = $row["Username"];
        $_SESSION['PT_CONFIRM']     = $row["Confirmed"];
        header("Location: ../");        
        }
        else {
            $result = $dbcon->query("SELECT * FROM PT_USERS WHERE Username = '$gebruiker'");
            if($result->num_rows == 1) {
                echo '<script>alert("Het wachtwoord klopt niet met dit gebruikersnaam!");</script>';
                header("Location: ../");
            }
            else {
                echo '<script>alert("Geen account gevonden!");</script>';
                header("Location: ../");
            }
        }
    }

我一直在寻找如何解决这个问题,但我似乎找不到任何东西。你们有什么运气可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这里不需要while循环。

试试这个 -

$result = $dbcon->query("SELECT * FROM PT_USERS WHERE Username = '$gebruiker' AND Password = '$wachtwoord'");
    if($result->num_rows == 1) {
        $row = $result->fetch_row();
        $_SESSION['PT_USERS']       = $row["Username"];
        $_SESSION['PT_CONFIRM']     = $row["Confirmed"];
        header("Location: ../");
    }
    else {
        $result = $dbcon->query("SELECT * FROM PT_USERS WHERE Username = '$gebruiker'");
        if($result->num_rows == 1) {
            echo '<script>alert("Het wachtwoord klopt niet met dit gebruikersnaam!");</script>';
            header("Location: ../");
        }
        else {
            echo '<script>alert("Geen account gevonden!");</script>';
            header("Location: ../");
        }
    }