最后一个if else语句不起作用


last if else statement didnt work

你们。。我的if-else语句有什么不对吗。。我试着输入数据库中已经存在的用户名,它起作用了。。如果我离开文本框epmty也是一样的。。但是,如果尝试输入有效名称,则不会读取else语句。。有人能帮我吗我找不到的问题在哪里

<?php 
include 'connect.php'; 
$username = ($_POST['txtUsername']);
$statement = $mysqli->prepare("SELECT companyUsername FROM tblpartner WHERE companyUsername=?");
$statement->bind_param("s", $username);
$statement->execute();
$statement->bind_result($username);
if ( $statement->fetch()) {
    echo '<span class="error"> taken</span>';
} else if(empty($username)) {
    echo '<span class="error"> Cannot be empty</span>';
} else 
echo '<span class="success"> available.</span>';

?>

我认为您做得基本正确,但只是感到困惑,因为您将输入名称和输出结果都绑定到$username。

如果我正确理解您的要求,您需要检查用户名输入是否为"空"条件,并检查用户名输出的NULL,以表示名称可用。。。

因此:

$username = ($_POST['txtUsername']);
if (empty($username) || ($username == '')) {
     echo '<span class="error"> Cannot be empty</span>';
} else {
    $statement = $mysqli->prepare("SELECT companyUsername FROM tblpartner   WHERE companyUsername=?");
    $statement->bind_param("s", $username);
    $statement->execute();
    $statement->bind_result($username);
    if ( $statement->fetch()) {
        echo '<span class="error"> taken</span>';
    } else {
        echo '<span class="success"> available.</span>';
    }

?>