2017-04-11 74 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子句有==或===等運算符它只允許=等於條件 –