无法弄清楚为什么这不起作用(PHP)

时间:2016-07-05 06:30:12

标签: php html mysql

所以我正在使用admin中的PHP 5.6面板功能,每当我尝试将用户切换为管理员时,它都会将其设置为构建器我不知道我在哪里做错了什么 这是代码

这是updateusera.php

     <?php include 'core/init.php';


$id   = $_GET['id'];
$type   = $_GET['type'];

if($type == 'admin'){
    mysql_query("UPDATE `users` SET `type` = 'user' WHERE `user_id` = '$id'");
     header('location: changeusers.php');

} else if($type =='user'){
    mysql_query("UPDATE `users` SET `type` = 'admin' WHERE `user_id` = '$id'");
    header('location: changeusers.php');

}

// ============================================= ============================

if($type == 'moderator'){
    mysql_query("UPDATE `users` SET `type` = 'user' WHERE `user_id` = '$id'");
     header('location: changeusers.php');

} else if($type =='user'){
    mysql_query("UPDATE `users` SET `type` = 'moderator' WHERE `user_id` = '$id'");
    header('location: changeusers.php');

}

// ============================================= ============================

if($type == 'builder'){
    mysql_query("UPDATE `users` SET `type` = 'user' WHERE `user_id` = '$id'");
     header('location: changeusers.php');

} else if($type =='user'){
    mysql_query("UPDATE `users` SET `type` = 'builder' WHERE `user_id` = '$id'");
    header('location: changeusers.php');

}
?>

this is the changeusers.php file

http://pastebin.com/qR2VybTk

由于某种原因它不会让我把我的两个代码放在这里P.S我是Stackoverflow的新手,所以我仍然可以使用这一切

如果有人有想法,我很乐意听到它

谢谢!

2 个答案:

答案 0 :(得分:0)

else if时,您有三个true语句$type =='user'。这些else if执行中的所有内容和三个查询都会发送,最后一个会设置类型构建器。

您需要传入需要设置的参数类型。那样:

if($type == 'admin') {
    echo "<a href='updateusera.php?id=&type=user'>Revoke Admin </a>";
} else {
    echo "<a href='updateusera.php?id=$id&type=admin'>Grant Admin </a>";
}
if($type == 'moderator') {
    echo "<a href='updateusera.php?id=$id&type=user'>Revoke Moderator </a>";
} else {
    echo "<a href='updateusera.php?id=$id&type=moderator'>Grant Moderator </a>";
}
if($type == 'builder') {
    echo "<a href='updateusera.php?id=$id&type=user'>Revoke Builder</a>";
} else {
    echo "<a href='updateusera.php?id=$id&type=builder'>Grant Builder</a>";
}

然后你的代码需要像那样:

if($type == 'user') {
    mysql_query("UPDATE `users` SET `type` = 'user' WHERE `user_id` = '$id'");
    header('location: changeusers.php');
    exit;
}
if($type == 'admin') {
    mysql_query("UPDATE `users` SET `type` = 'admin' WHERE `user_id` = '$id'");
    header('location: changeusers.php');
    exit;
}
if($type == 'builder') {
    mysql_query("UPDATE `users` SET `type` = 'builder' WHERE `user_id` = '$id'");
    header('location: changeusers.php');
    exit;
}

答案 1 :(得分:0)

您想将else if语句更改为if语句;基本上所有else if语句都在执行,最后else if语句设置为构建器。