在数组中搜索用户名

时间:2014-04-01 13:58:31

标签: php mysql

此代码循环遍历数据库中的内容数组,该数组搜索用户名变量对数据库中的用户名,当找到它应该从if else语句中断时。

<?php 
while($row = mysql_fetch_array($resultSet, MYSQL_ASSOC))
    {
if($username = $row['User_Name']){
     echo "username found";
     echo "Logged in as ", $Username;   
     break;
    }
else
    {
    echo "not yet";
    }
}
    mysql_close($conn);
    ?>
</div>

我正在纠结这个错误:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in H:\STUDENT\S0190204\GGJ\Logon-process.php on line 36

3 个答案:

答案 0 :(得分:1)

你在哪里

if($username = $row['User_Name']){

应该是

if($username == $row['User_Name']){

单个等于集合,双等于测试相等,三等于测试文字相等。

实际上,这不是方法,你应该包括

 WHERE user_name = "$username"
在查询中

而不是返回所有结果并循环。

另外,don't use mysql_* functions, they're deprecated and don't include built-in secure practices like passed parameters

答案 1 :(得分:1)

if($username = $row['User_Name']){

应该是

if ($username == $row['User_Name']){

然而,还有很多其他方法可以做到这一点......(例如上面的答案)

答案 2 :(得分:0)

你应该避免传递如此大的数据并在循环中搜索 - 这就是SQL。

您的查询应该看起来像:

"SELECT .... WHERE `User_Name` = ".mysql_real_escape_string($username)."...."