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