2015-11-07 50 views
0

hye guys..is有什么不对我的if else语句..我尝试过输入用户名,已经存在于数据库中,它的工作..同样,如果我离开了文本框epmty ..但如果试图输入一个有效的名称,它不看别的statement..can有人帮me..i不能找到问题出在哪里最后如果其他语句没有工作

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


?> 
+1

“它不读取else语句” - 这是什么意思?输入有效名称后,您在文档中看到什么? – BadZen

+0

它显示不能为空 –

+0

也许你改变你的逻辑。首先测试是否为空,然后如果在db。 –

回答

0

我觉得你这样做是基本上是正确的,但刚因为你把输入名和输出结果都绑定到$ 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>'; 

    } 



?> 
+0

这就是说,你可能想要将你的'fetch()'的结果存储在一个变量中,这样你就可以区分NULL和false return - 然后你就可以检测错误条件了...... – BadZen

+0

thnx你的代码工作,但我已经使所以它会显示我想要的东西 –

+0

$ username =($ _POST ['txtUsername']); if(empty($ username)||($ username =='')){ echo'不能为空。'; (“SELECT companyUsername FROM tblpartner WHERE companyUsername =?”);其他{ } $ statement-> bind_param(“s”,$ username); $ statement-> execute(); $ statement-> bind_result($ username);如果($ statement-> fetch()){ ' } else { echo' available'; } } –