所以最近我问了一个关于使用带有“最高分”这个短语的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
答案 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;
}