last if else语句无效[关闭]

hye guys..is there anything wrong with my if else statement..i tried input username that already existed in the database,and it work..also same if i left the textbox epmty..but if a tried enter a valid name,it does not read the else statement..can someone help me..i cant find where is the problem

<?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>';


?>

I think you're doing it mostly right but just got confused because you bind both the input name and the output result to $username.

You want the username input to be checked for the "empty" condition, and the username output to be checked for NULL to signal that the name is available, if I'm understanding what you want correctly...

So:

$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>';

    }



?>