【问题标题】:if-else statement not working correctly in while loopif-else 语句在 while 循环中无法正常工作
【发布时间】:2016-09-09 05:38:35
【问题描述】:

我不确定我到底做错了什么。如果用户是管理员,我想获得一个额外的链接,如果用户是会员,该链接应该是无效的。但是,即使我以会员身份登录,我也会得到仅适用于管理员的额外链接。我的代码做错了什么?

$connect=mysqli_connect("$db_server", "$db_user", "$db_password", "$db_database");
$query="SELECT admin FROM `$table_members`";
$result=mysqli_query($connect, $query);
while ($row=mysqli_fetch_assoc($result)) {
    $admin = $row['admin'];
    if ($admin=="Administrator") {
        echo "<a href=\"admin.php\">Admin Panel</a>";
    }
    else {
        echo "";
    }
}

提前感谢您的帮助!

【问题讨论】:

  • 在 if 循环之前打印$admin 的值并查看它打印的内容。我怀疑,您的查询中缺少where 条件,因此它会获取包括管理员记录在内的所有结果,因此您得到了它。
  • 它打印两个 :​​o dies
  • 去掉双引号mysqli_connect("$db_server", "$db_user", "$db_password", "$db_database")
  • @devpro 谢谢,我通过将WHERE email 识别为登录用户来使其工作。
  • @devpro 我选择了 Pavneet 的答案.. -reselecting-

标签: php if-statement


【解决方案1】:

我看不到任何使黑白管理员和成员有所不同的查询,您的代码只是检索管理员列并遍历每个值并在匹配时打印链接。

你不认为你的查询会像一个唯一的键加上你只需要检查一次而不是 while 循环

$query="SELECT admin FROM `$table_members` where id='uniqueid'";

$query="SELECT admin FROM `$table_members` where userID_email='uniqueid'";
$result=mysqli_query($connect, $query);
$row_cnt = mysqli_num_rows($result); // see if match found
if($row_cnt>0) { // if false mean unknown user
   $row=mysqli_fetch_assoc($result);
    $admin = $row['admin'];
    if ($admin=="Administrator") {
        echo "<a href=\"admin.php\">Admin Panel</a>";
    }
    else {
        echo "";
    }
}

【讨论】:

  • 非常感谢!它起作用了,只是我将电子邮件识别为登录用户。 :D
【解决方案2】:

首先你的连接有问题

1) 删除 mysqli_connection 参数中的所有双引号。如果您将双引号作为字符串,则将传递的变量作为参数,因此请删除双引号

    $connect=mysqli_connect($db_server, $db_user, $db_password, $db_database);
    $query="SELECT admin FROM `$table_members` where email='user email address' ";
    $result=mysqli_query($connect, $query);
    while ($row=mysqli_fetch_assoc($result)) {
        $admin = $row['admin'];
        if ($admin=="Administrator") {
            echo "<a href=\"admin.php\">Admin Panel</a>";
        }
        else {
            echo "";
        }
    }

【讨论】:

  • 感谢您的帮助!我通过将WHERE email 上的电子邮件识别为登录用户来使其工作。 :)
猜你喜欢
  • 2014-09-27
  • 2015-03-14
  • 1970-01-01
  • 2015-11-08
  • 2016-06-18
  • 1970-01-01
  • 2013-12-30
  • 2022-11-24
  • 2012-06-18
相关资源
最近更新 更多