2014-10-20 68 views
0

我試圖寫一個,如果stementPHP有一方或等於

if(($result["from_id"] OR $result["to_id"]) == $_SESSION['user_id']) { 
    //DO SOMETHING 
} 
else { 
    // redirect 
} 

聲明這是來看看無論是從某行獲取的2列具有相同價值的正確方法的當前註冊會議。

這也有可能嗎?

if($result["from_id"] || $result["to_id"] == $_SESSION['user_id']) { 
    //DO SOMETHING 
} 
else { 
    // redirect 
} 
+0

您是否試圖將'from_id'和'to_id'與'user_id'進行比較? – ethrbunny 2014-10-20 21:59:53

+1

我想比較他們其中的一個,看看id是否與會話id相匹配,如果任何一個做了,然後回顯某些內容,如果兩個都沒有,那麼回顯其他內容。 @ethrbunny – 2014-10-20 22:27:59

回答

0

不,在PHP你會做這樣的事情:

if (in_array($_SESSION['user_id'], array($result["from_id"], $result["to_id"]))) 

或寫任何條件下分離的比較(在這種情況下2,in_array方法秤好一點)。

如果結果來自mysql,那麼您也可以直接在那裏使用IN

0

您的比較結果爲這樣的假設這些值都設置...

if((true || true) == $_SESSION['user_id']){ ... } 

您需要專門比較...

if($result["from_id"] == $_SESSION['user_id']|| $result["to_id"] == $_SESSION['user_id']){ ... } 

所以,你可以看到爲什麼第一組是不會去做你期望的事情。

但是正如jeroen所說,您可能希望直接在查詢中運行此操作。

SELECT * FROM `table` WHERE `from_id` = '$_SESSION['user_id']' OR `to_id` = '$_SESSION['user_id']' 

除了根據您使用的任何數據庫接口顯然逃避這一點。

+1

我幾乎只是試圖查看登錄的用戶是否具有私人消息的發件人或收件人的相同ID。如果他是,則顯示該頁面,如果他沒有,則顯示沒有權限錯誤。 @凱青 – 2014-10-20 22:31:43

+0

這兩個答案都是這樣做的。只是他們正在糾正你提供的語法。你試過了,看看它們是否有效? – 2014-10-20 23:00:03

+1

我試過你發給我的代碼** if($ result [「from_id」] == $ _SESSION ['user_id'] || $ result [「to_id」] == $ _SESSION ['user_id']){.. 。**但即使我的會話值等於或來自它,它也會重定向。 – 2014-10-20 23:46:44

相關問題