【问题标题】:IF doesn't seem to be working如果似乎没有工作
【发布时间】:2012-12-10 05:11:43
【问题描述】:

好的,我将直接进入这个。

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

如果人的名字在行中,并且页面 id 与会话 id 不匹配,它应该回显一个按钮。但是名称可能在两行中,我使用简单的“||”分开。 但我的 if 不起作用。尽管它在最后,但它返回“添加朋友”。我删除了第二个“或”因素,只使用了一个语句,它起作用了。

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;
    } 

【问题讨论】:

  • 添加一些符合逻辑的() 分组。 if ((thing1 &amp;&amp; thing2) || (thing3 &amp;&amp; thing4))
  • 请移除SQL注入漏洞。始终转义嵌入到 SQL 中的内容,或使用准备好的语句。请注意,不推荐使用 MySQL 扩展,您的所有 mysql 功能应切换为使用 mysqli 扩展。
  • @Sven,或者像 PDO 这样的抽象层。对吗?
  • 注意! PHP 的未来版本将弃用和删除mysql_ 系列函数。现在是switch to PDO(正如其他人建议的那样)或mysqli 的好时机。

标签: php


【解决方案1】:

我认为删除 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;
} 

【讨论】:

  • @NoahSmith 检查每个变量的值以确保它们保持预期值。
猜你喜欢
  • 2013-11-25
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
相关资源
最近更新 更多