如何从PHP检查MySQL中某个单元格是否等于0?

时间:2013-09-25 18:00:26

标签: php mysql

很抱歉打扰你,但我花了几个小时浏览互联网以获得我的问题的答案,我搜索了谷歌,甚至询问了雅虎的答案,但我找不到解决问题的方法。

我有一个数据库,并且在该数据库中是一个名为active的列,它默认为0.在PHP中我想检查一个人是否登录,如果该帐户中的帐户中有0则如果是我将用户登录,但如果没有,则会显示一条错误消息,说明他们的帐户已被禁止。无论始终出现什么信息,问题都在于:

Your account has been banned, if you think this is in error email: admin@website.com.

以下是导致问题的代码部分:

$active = mysql_query("SELECT active FROM users WHERE username='$username'");
if (mysql_num_rows($active) == 0)
{
    session_start();
    $_SESSION['username'] = $username;
    echo "You've been logged in. <a href='http://techhelpandhowtos.tk'>Home</a>";        
}
else
{
    echo "<font color=Red>Your account has been banned, if you think this is in error email: admin@website.com</font>";
}

先前在脚本中建立了与数据库的连接,这不是问题所在。任何帮助表示赞赏。请,任何人都可以找到答案。

3 个答案:

答案 0 :(得分:1)

只要您的用户存在(并且他的用户名是uniqe),mysql_num_rows将始终返回1.

像这样使用mysql_fetch_array:

$active = mysql_query("SELECT active FROM users WHERE username='$username'");
$res = mysql_fetch_array($active);
if($res["active"] === "1")
...

我还应该提一下,你不应该为新代码使用mysql扩展,因为它目前已被弃用,将来会被删除。请改用PDO或mysqli。

答案 1 :(得分:0)

您正在检查是否有匹配的记录,而不是它们是否有效。下面的代码将选择与用户名匹配的用户,并检查它们是否被禁止。

$active = mysql_query("SELECT active FROM users WHERE username='$username'");
$row = mysql_fetch_assoc($active);
if (isset($row['active']) && $row['active'] == 1)
{
    session_start();
    $_SESSION['username'] = $username;
    echo "You've been logged in. <a href='http://techhelpandhowtos.tk'>Home</a>";        
}
else
{
    echo "<font color=Red>Your account has been banned, if you think this is in error email: admin@website.com</font>";
}

答案 2 :(得分:0)

我认为这应该可以解决你的问题

if (mysql_num_rows($active) == 1)
{
    $result = mysql_result($active,0,'active');
    if($result == 0)
    {
       session_start();
       $_SESSION['username'] = $username;
       echo "You've been logged in. <a href='http://techhelpandhowtos.tk'>Home</a>";
    }else
    {
        echo "<font color=Red>Your account has been banned, if you think this is in error email: admin@website.com</font>";

    }
}