如果点==“最高”,则排名= 1?

时间:2014-02-21 04:55:15

标签: php

所以最近我问了一个关于使用带有“最高分”这个短语的if语句的问题,但我无法得到任何可行的工作。所以现在我试图让它如此说,如果用户拥有最多的积分,他们将排名第一。然后,如果用户拥有第二多的积分,则他将排名为2,依此类推。我真的不知道该如何做到这一点,所以我真的没有太多的开始,但这是我得到的

<td><?php echo ucfirst($r->username); ?></td>
<td>
    <?php
    echo ucfirst($r->points);
    if($r->points=='1') {
        echo $r->username;
    }
    ?>
</td>
<td><?php echo ucfirst($r->rank); ?></td>
<td><?php

2 个答案:

答案 0 :(得分:1)

<?php
$connection = odbc_connect(connectionString);

$query = "SELECT USERS, POINTS from DB ORDER BY POINTS DESC";
$results = odbc_exec($connection,$query);

$i = 1;
while (odbc_fetch_row($results))
{
    $users[$i] = odbc_result($results,"USERS");
    $points[$i] = odbc_result($results,"POINTS");
    $rank[$i] = $i;
    $i++;
}
?>

现在你有3个排序顺序的数组。这里没有错误检查(例如odbc_connnect函数是否失败),但是你得到它的漂移。

答案 1 :(得分:0)

为此你必须使用唯一值从数据库创建和数组(从表desc中选择唯一的(点)),该数组应该按降序排列所有点,你必须检查你的排名指向该数组并且如果该数组中存在rank,则获取该元素的键,这将是所有用户中的ur用户等级...

$all_point_array() = (select unique(points) from table order points by desc)
   Example-> $all_point_array() = array('300','200','100');
    find value in the array
    if(in_array($r->points,$all_point_array)){
    $rank_key = array_search($r->points,$all_point_array)
    echo "your rank->".$rank_key;
    }