2017-04-11 75 views
1

我正在开发一个用户登录的项目,如果rep列是他们的name,那么它只会显示记录。我知道有一吨的方法可以做到这一点,但最简单的方法对我来说是使用如果具有会话PHP如果语句为SESSION

if($_SESSION['account_type'] == 'Rep') { 

    $sql = "SELECT * FROM `employee` WHERE rep='".$_SESSION['name']."' "; 

} elseif ($_SESSION['account_type'] == 'Manager') { 

    $sql = "SELECT * FROM `employee` WHERE Manager='".$_SESSION['name']."' "; 

} elseif ($_SESSION['account_type'] == 'Regional') { 

    $sql = "SELECT * FROM `employee` WHERE Region='".$_SESSION['regional']."' "; 

} elseif ($_SESSION['account_type'] == 'Other') { 

    $sql = "SELECT * FROM `employee` "; 

} else { 
    echo 'no records found'; 
} 

如果您的帐户类型是rep,报表只显示您的姓名记录。如果您的帐户类型为manager,请显示经理记录中包含您的姓名等的记录等。

由于某种原因,我没有收到任何记录;其空白。

如果我改变它只是:

$sql = "SELECT * FROM `employee` WHERE rep='".$_SESSION['name']."' "; 

我得到记录回到了它拥有的代表列的用户名;这是伟大的,但我需要的if语句工作。

任何想法?

UPDATE

语法错误 - 谢谢!

+0

没有错误可言仅仅只有空白? –

+0

您是否在页面顶部开始了会话? – JYoThI

+0

空白页意味着您的代码中的某处出错 – JYoThI

回答

0

使用===strcmp函数。 您不应该使用==来比较String

尝试if($_SESSION['account_type'] === 'Rep') 等等...

+0

它应该在评论区,如果有任何条件不满足至少它应该回声的其他部分。但他说他得到空白页。所以在他的代码中的某处是错误 – JYoThI

+0

你是对的,我发现有错误(主页辛普森DOH!) – JD6969

+0

我不知道你为什么这么说,但请访问https://www.tutorialspoint.com/mysql/mysql-where- clause.htm mysql where子句有==或===等运算符它只允许=等于条件 –