显示当前Loggedin用户排名

时间:2015-06-11 06:50:36

标签: php

我已经编写了代码来向所有用户显示排名。 但是,我无法显示当前登录的用户排名。 这是我写的代码。

<?php
        $var = mysql_query("SELECT quiz_grades.grade, user.username FROM quiz_grades JOIN user ON quiz_grades.userid=user.id WHERE `quiz`=$quid ORDER BY quiz_grades.grade DESC");
        $i=0;
        while($result1=mysql_fetch_array($var))
        {
            $i++;
            echo $result1['username'];
            echo $result1['grade'];
            echo $i;
        }
?>

请帮我显示当前登录的用户排名。 在此先感谢

2 个答案:

答案 0 :(得分:2)

首先,您当前在哪里登录用户的ID /用户名?没有任何会议? $_SESSION['id']$_SESSION['username'];如果您没有,则在用户登录时设置用户的会话

注意:mysql_query is deprecated

$_SESSION['id'] = $current_logged_in_user_id; // $current_logged_in_user_id is just an example variable to give you an idea of making the session according to id which you fetch when user logs in.

我将向您展示基于手动用户ID的查询

 $userid = '3';

稍后在问题海报中描述,用户ID为:

$USER->id 

然后在查询用户中使用上面的变量来获取当前用户的排名/整数数据remove quizid条件。

<?php
$var = mysql_query("SELECT quiz_grades.grade, user.username 
                FROM quiz_grades 
                JOIN user ON quiz_grades.userid=user.id 
                WHERE quiz_grades.quiz = $quizid AND quiz_grades.userid = $USER->id ORDER BY quiz_grades.grade DESC");
        $i=0;
        while($result1=mysql_fetch_array($var))
        {
            $i++;
            echo $result1['username'];
            echo $result1['grade'];
            echo $i;
        }
    ?>

答案 1 :(得分:1)

USE用户名=&#39; Current_user_id&#39; 显示当前登录的用户..

在查询中指定用户名条件

<?php $var = mysql_query("SELECT quiz_grades.grade, user.username 
                FROM quiz_grades 
                JOIN user ON quiz_grades.userid=user.id 
                WHERE `quiz`=$quid and `username`='$userid' ORDER BY quiz_grades.grade DESC");
        $i=0;
        while($result1=mysql_fetch_array($var))
        {
            $i++;
            echo $result1['username'];
            echo $result1['grade'];
            echo $i;
        }
    ?>