Php if-else语句在while循环中不能正常工作

Php if-else语句在while循环中不能正常工作,php,if-statement,Php,If Statement,我不确定我到底做错了什么。我想得到一个额外的链接,如果用户是管理员,链接应该是无效的,如果用户是一个成员。但我得到了额外的链接,即使我以会员身份登录,也应该只提供给管理员。我在代码中做错了什么 $connect=mysqli_connect("$db_server", "$db_user", "$db_password", "$db_database"); $query="SELECT admin FROM `$table_members`"; $result=mysqli_query($con

我不确定我到底做错了什么。我想得到一个额外的链接,如果用户是管理员,链接应该是无效的,如果用户是一个成员。但我得到了额外的链接,即使我以会员身份登录,也应该只提供给管理员。我在代码中做错了什么

$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 "";
    }
}
$connect=mysqli_connect(“$db_服务器”、“$db_用户”、“$db_密码”、“$db_数据库”);
$query=“从“$table\u members”中选择管理员”;
$result=mysqli\u查询($connect,$query);
while($row=mysqli\u fetch\u assoc($result)){
$admin=$row['admin'];
如果($admin==“管理员”){
回声“;
}
否则{
回声“;
}
}

提前谢谢你的帮助

我看不到任何查询会对管理员和成员产生影响,您的代码只是检索admin列,遍历每个值,并在匹配时打印链接

您不认为您的查询将类似于一个唯一的键,并且您只需要检查一次,而不需要while循环吗

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

$query=“从“$table\u members`where userID\u email='uniqueid'”中选择管理员;
$result=mysqli\u查询($connect,$query);
$row_cnt=mysqli_num_rows($result);//看看是否找到匹配项
if($row_cnt>0){//if false表示未知用户
$row=mysqli\u fetch\u assoc($result);
$admin=$row['admin'];
如果($admin==“管理员”){
回声“;
}
否则{
回声“;
}
}

我看不到任何查询会对管理员和成员产生影响,您的代码只是检索admin列,遍历每个值,并在匹配时打印链接

您不认为您的查询将类似于一个唯一的键,并且您只需要检查一次,而不需要while循环吗

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

$query=“从“$table\u members`where userID\u email='uniqueid'”中选择管理员;
$result=mysqli\u查询($connect,$query);
$row_cnt=mysqli_num_rows($result);//看看是否找到匹配项
if($row_cnt>0){//if false表示未知用户
$row=mysqli\u fetch\u assoc($result);
$admin=$row['admin'];
如果($admin==“管理员”){
回声“;
}
否则{
回声“;
}
}

首先,您的连接有问题

1) 删除mysqli_连接参数中的所有双引号。如果将变量作为参数传递,则将其视为字符串,因此删除双引号

    $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 "";
        }
    }
$connect=mysqli\u connect($db\u server、$db\u user、$db\u password、$db\u database);
$query=“从“$table\u members`where email='user email address'”中选择管理员;
$result=mysqli\u查询($connect,$query);
while($row=mysqli\u fetch\u assoc($result)){
$admin=$row['admin'];
如果($admin==“管理员”){
回声“;
}
否则{
回声“;
}
}

首先,您的连接有问题

1) 删除mysqli_连接参数中的所有双引号。如果将变量作为参数传递,则将其视为字符串,因此删除双引号

    $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 "";
        }
    }
$connect=mysqli\u connect($db\u server、$db\u user、$db\u password、$db\u database);
$query=“从“$table\u members`where email='user email address'”中选择管理员;
$result=mysqli\u查询($connect,$query);
while($row=mysqli\u fetch\u assoc($result)){
$admin=$row['admin'];
如果($admin==“管理员”){
回声“;
}
否则{
回声“;
}
}

在if循环之前打印
$admin
的值,并查看它打印的内容。我怀疑,您的查询中缺少了
where
条件,因此它会获取所有结果,包括管理员记录,所以您得到了它。它同时打印两个内容:o diesremove双引号
mysqli\u connect(“$db\u server”、“$db\u user”、“$db\u password”、“$db\u database”)
@devpro谢谢,我通过将电子邮件的位置识别为登录用户而使其工作。@devpro我选择了Pavneet的答案-重新选择在if循环之前打印
$admin
的值,并查看它打印的内容。我怀疑,您的查询中缺少了
where
条件,因此它会获取所有结果,包括管理员记录,所以您得到了它。它同时打印两个内容:o diesremove双引号
mysqli\u connect(“$db\u server”、“$db\u user”、“$db\u password”、“$db\u database”)
@devpro谢谢,我通过将电子邮件的位置识别为登录用户而使其工作。@devpro我选择了Pavneet的答案-重新选择非常感谢!它起作用了,只是我将电子邮件标识为登录用户:谢谢你!它起作用了,只是我将电子邮件标识为登录用户:谢谢你的帮助!我通过将
上的电子邮件
标识为登录用户,使其正常工作。:)谢谢你的帮助!我通过将
上的电子邮件
标识为登录用户,使其正常工作。:)