Php 如果int有一个特定的值,那么做一些事情,如果没有,那么做其他事情

Php 如果int有一个特定的值,那么做一些事情,如果没有,那么做其他事情,php,html,mysql,database,localhost,Php,Html,Mysql,Database,Localhost,我正在尝试从1到7对我的用户进行排名。如果登录用户排名为7,则表示您是员工。如果没有,那就做点别的。但如果我给用户1排名7,什么也不会发生。然后如果我给用户2排名7,两个都会得到一条信息,说你是员工 我已经为此挣扎了三天,但没有发现问题所在。我想让网站做的是找出登录用户是否排名7,而不是其他人,只有登录的用户排名7,如果我数据库中的其他人排名7,而不是你,你不应该得到你是员工的消息。我有一个名为GamesNet的数据库,一个名为members的表,我的用户ID名为memberID,我还有一些其他

我正在尝试从1到7对我的用户进行排名。如果登录用户排名为7,则表示您是员工。如果没有,那就做点别的。但如果我给用户1排名7,什么也不会发生。然后如果我给用户2排名7,两个都会得到一条信息,说你是员工

我已经为此挣扎了三天,但没有发现问题所在。我想让网站做的是找出登录用户是否排名7,而不是其他人,只有登录的用户排名7,如果我数据库中的其他人排名7,而不是你,你不应该得到你是员工的消息。我有一个名为GamesNet的数据库,一个名为members的表,我的用户ID名为memberID,我还有一些其他列名为username、password、email和Rank

这是一个不错的设置,对吗? 这是我的密码:

$stmt = $db->prepare('SELECT Rank, memberID from members where memberID');
$stmt->bindParam(7,$memberID, PDO::PARAM_INT);
$stmt->execute();

$result = $stmt->fetch(PDO::FETCH_ASSOC);
if($result['Rank'] == 7){
    echo "You are a staff member.";
}else{
    echo "Hello you are not a staff.";
}

?>
编辑:

login.php

<?php
//include config
require_once('includes/config.php');

//check if already logged in move to home page
if( $user->is_logged_in() ){ header('Location: index.php'); } 

//process login form if submitted
if(isset($_POST['submit'])){

    $username = $_POST['username'];
    $password = $_POST['password'];

    if($user->login($username,$password)){ 
        $_SESSION['username'] = $username;
        header('Location: memberpage.php');
        exit;

    } else {
        $error[] = 'Wrong username or password or your account has not been activated.';
    }

}//end if submit

//define page title
$title = 'Login';

//include header template
require('layout/header.php'); 
?>


<div class="container">

    <div class="row">

        <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3">
            <form role="form" method="post" action="" autocomplete="off">
                <h2>Please Login</h2>
                <p><a href='./'>Back to home page</a></p>
                <hr>

                <?php
                //check for any errors
                if(isset($error)){
                    foreach($error as $error){
                        echo '<p class="bg-danger">'.$error.'</p>';
                    }
                }

                if(isset($_GET['action'])){

                    //check the action
                    switch ($_GET['action']) {
                        case 'active':
                            echo "<h2 class='bg-success'>Your account is now active you may now log in.</h2>";
                            break;
                        case 'reset':
                            echo "<h2 class='bg-success'>Please check your inbox for a reset link.</h2>";
                            break;
                        case 'resetAccount':
                            echo "<h2 class='bg-success'>Password changed, you may now login.</h2>";
                            break;
                    }

                }


                ?>

                <div class="form-group">
                    <input type="text" name="username" id="username" class="form-control input-lg" placeholder="User Name" value="<?php if(isset($error)){ echo $_POST['username']; } ?>" tabindex="1">
                </div>

                <div class="form-group">
                    <input type="password" name="password" id="password" class="form-control input-lg" placeholder="Password" tabindex="3">
                </div>

                <div class="row">
                    <div class="col-xs-9 col-sm-9 col-md-9">
                         <a href='reset.php'>Forgot your Password?</a>
                    </div>
                </div>

                <hr>
                <div class="row">
                    <div class="col-xs-6 col-md-6"><input type="submit" name="submit" value="Login" class="btn btn-primary btn-block btn-lg" tabindex="5"></div>
                </div>
            </form>
        </div>
    </div>



</div>


<?php 
//include header template
require('layout/footer.php'); 
?>

select语句中的where子句缺少a,例如

然后必须使用1而不是7,因为它是第一个也是唯一的参数标记

$stmt->bindParam(1,$memberID, PDO::PARAM_INT);
您还可以跳过bindParam并将memberId作为数组传递给

只处理一个用户

$memberID = 1234;
$stmt = $db->prepare('select rank, memberid from members where memberid = ?');
$stmt->execute(array($memberID));
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result['rank'] == 7) {
    echo "You are a staff member.";
} else {
    echo "Hello you are not a staff.";
}
获取所有用户

$stmt = $db->prepare('select rank, memberid from members');
$stmt->execute();
while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if ($result['rank'] == 7) {
        echo "You are a staff member.";
    } else {
        echo "Hello you are not a staff.";
    }
}
您在函数登录中已经有$\u会话['memberID']。所以你可以用它

$stmt = $db->prepare('select rank, memberid from members where memberid = ?');
$stmt->execute(array($_SESSION['memberID']));
并拥有所需的数据

更好的是,您可以使用扩展函数get\u user\u hash

这将一次性提供排名,并避免额外的数据库往返。然后可以在函数login中保存排名

现在你可以检查一下

// Memberpage.php
if ($_SESSION['Rank'] == 7) {
    echo "You are a staff member.";
} else {
    echo "Hello you are not a staff.";
}

不执行另一个SQL查询。

糟糕的调试器也是如此。你有没有试着记录下你得到了什么,看看现实是否符合你的期望?谢谢!我不知道这些评论是怎么回事,但是当我改变排名和刷新网站时,什么都没有发生,我必须登录和注销才能看到变化,我怎么能仅仅通过刷新来改变它呢?我猜,一位版主对这些评论进行了猛烈的抨击。好吧,但我仍然不知道如何仅仅通过刷新成员页面来改变它。你对我需要做什么有什么想法吗?:没有?:非常感谢,先生。对不起,我不能告诉你更多了,我已经告诉你了。检查基于会话变量$\u session/$\u session['Rank']。当您注销并再次登录时,此变量将更新。要获得相同的结果,必须在脚本中更新此变量,方法是直接将其设置为新值,或者执行SQL查询以从数据库中获取新值。
$stmt = $db->prepare('select rank, memberid from members');
$stmt->execute();
while ($result = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if ($result['rank'] == 7) {
        echo "You are a staff member.";
    } else {
        echo "Hello you are not a staff.";
    }
}
$stmt = $db->prepare('select rank, memberid from members where memberid = ?');
$stmt->execute(array($_SESSION['memberID']));
// user.php, function get_user_hash()
$stmt = $this->_db->prepare('SELECT password, username, memberID, Rank FROM members WHERE username = :username AND active="Yes" ');
// user.php, function login()
// ...
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $row['username'];
$_SESSION['memberID'] = $row['memberID'];
$_SESSION['Rank'] = $row['Rank'];
// Memberpage.php
if ($_SESSION['Rank'] == 7) {
    echo "You are a staff member.";
} else {
    echo "Hello you are not a staff.";
}