IF似乎不起作用

时间:2012-12-09 20:51:41

标签: php

是的,我会直接进入这个。

我正在构建添加好友按钮。如果此人与会话在同一行(登录的人),则不应回显添加好友。

如果此人的姓名在行中,且页面ID与会话ID不匹配,则应回显按钮。但是名称可能有两行,我使用简单的'||'分开。 但我的if不行。它返回'添加好友',尽管它在最后。我删除了第二个'OR'因子,只使用了一个语句并且有效。

RelatedUser和RelatingUser是页面ID结果可能位于的两个可能字段。

我的代码如下:

    $session_username_query = mysql_query("SELECT * FROM users WHERE username='{$_SESSION['user_login']}'");
    $session_username_assoc = mysql_fetch_assoc($session_username_query);
    $session_username = $session_username_assoc['username']; //the person who is logged in

    $profile_view_query = mysql_query("SELECT * FROM friend WHERE RelatedUser='$session_username' OR RelatingUser='$session_username'");
     $profile_view_assoc = mysql_fetch_assoc($profile_view_query);
     $related = $profile_view_assoc['RelatedUser'];
     $relating = $profile_view_assoc['RelatingUser']; 

      if ($username != $relating && $_GET['id'] != $session_username_assoc['id'] || $username != $related && $_GET['id'] != $session_username_assoc['id']) {
 $addAsFriend = '<input type="submit" name="addfriend" value="Add Friend">';
    echo $addAsFriend;
    } 

1 个答案:

答案 0 :(得分:0)

我认为删除OR操作数(||)会给你想要的结果。

if (
    $username != $relating &&
    $username != $related &&
    $_GET['id'] != $session_username_assoc['id']
) {
    $addAsFriend = '<input type="submit" name="addfriend" value="Add Friend">';
    echo $addAsFriend;
} 

修改

也许我误解了你的问题。这有用吗?

if (
    ($username != $relating || $username != $related) &&
    $_GET['id'] != $session_username_assoc['id']
) {
    $addAsFriend = '<input type="submit" name="addfriend" value="Add Friend">';
    echo $addAsFriend;
}