SQL Query中的If If语句

时间:2013-06-05 20:14:17

标签: php mysql if-statement

好的,我摇摇头,因为我知道这是显而易见的,但我只是没有得到它。查询应该返回1个带有匹配用户名和密码的结果,然后 - 我只需要检查行中的列/字段“Status”是否设置为Inactive或Suspended - 如果是,则设置$ count的值并设置a msg的$ _SESSION值。

现在看来状态检查不起作用 - 这是因为我是如何比较column.field名称的? $结果[ '状态']?

我的查询如下:

$sql="SELECT * FROM $tbl_name WHERE User_Name='$myusername' and Password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// Verified E-Mail address check
if ($result['Status']=="Inactive") {$count=5;$_SESSION['msg']=="Not Verified";};

2 个答案:

答案 0 :(得分:3)

您需要先从结果中提取数据行,然后才能比较值。

这样的事情:

$result = mysql_query($sql);
$data = mysql_fetch_array($result);
if ($data['Status'] == 'Inactive') {
    ...
}

话虽如此,使用mysql_ *函数的理由很充分 有关详细信息,请参阅此问题: Why shouldn't I use mysql_* functions in PHP?

答案 1 :(得分:3)

您应该使用mysql_fetch_arraymysql_fetch_assoc从查询中获取一系列数据。

$sql="SELECT * FROM $tbl_name WHERE User_Name='$myusername' and Password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// Verified E-Mail address check

$row = mysql_fetch_array($result);

if ($row['Status']=="Inactive") {$count=5;$_SESSION['msg']=="Not Verified";};

另外,我的建议是不要使用mysql_函数,因为它们已从5.5版中弃用。查看mysqli或更好pdo