簡體   English   中英

PHP:否則條件在 php 中不起作用

[英]PHP: else condition is not working in php

我設計了一個管理員登錄頁面。 if 條件有效,但 else 條件無效。 輸入錯誤的用戶名或密碼后,它在同一頁面上顯示為空白。

if(isset($_POST['submit']))
{
    $userid = $_POST['userid'];
    $pass= $_POST['pass'];

    $sql = mysqli_query($DBCONNECT, "SELECT * FROM admin WHERE userid='$userid' and pass='$pass'") or die(mysql_error());

    //$count=mysql_fetch_array($sql);

    $count = mysqli_num_rows($sql) or die(mysql_error());

    if($count == 1)
    {
        $_SESSION['userid'] = $userid;//$_POST['userid'];
        echo "hiii";
        //header("Location:add_menu.php");
    }
    else
    {
        echo "Wrong Username or Password";
    }
}

您使用了mysql_error(); 這導致空白頁錯誤。

使用以下代碼將解決您的問題。

$sql = mysqli_query($DBCONNECT,$query);
$count = mysqli_num_rows($sql);

從您的代碼中刪除or die(mysqli_error($link))對您來說可以正常工作。

注意: mysqli_num_rows只能用於程序風格,不能用於面向對象風格。

你可以試試這個代碼嗎? 區別在於if($count)而不是if($count==1)

if(isset($_POST['submit']))
{
    $userid = $_POST['userid'];
    $pass= $_POST['pass'];

    $sql = mysqli_query($DBCONNECT, "SELECT * FROM admin WHERE userid='$userid' and pass='$pass'") or die(mysql_error());

    //$count=mysql_fetch_array($sql);

    $count = mysqli_num_rows($sql) or die(mysql_error());

    if($count)
    {
        $_SESSION['userid'] = $userid;//$_POST['userid'];
        echo "hiii";
        //header("Location:add_menu.php");
    }
    else
    {
        echo "Wrong Username or Password";
    }
}

Mysqli 也將結果作為對象,所以你可以這樣做:

$sql = mysqli_query($con, "SELECT * FROM users WHERE userid='$userid' and pass='$pass'") or die(mysqli_error());

您的 mysqli_error 只會顯示 if 語句錯誤,我認為您不會輸入錯誤的語句,但會很好地開發。

那么你可以通過 if 檢查語句是否有效並把這個:

echo $sql->num_rows;

可以放入變量:

$count = mysqli_num_rows($sql) to $count = $sql->num_rows

或者

if($sql->num_rows == 0) {
 // here your blank result for error
} else {
 // show result here.
}

鏈接:檢查 PHP 站點 Mysqli Num Rows 結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM