php - 如何查找所需行之前的总行数

标签 php mysql sql

我有一个基于文本的黑手党游戏,我选择了一些游戏记录。游戏记录全部定义在“users”表中。在这个例子中,我使用“总犯罪”。我需要从用户表中选择所有行并按总犯罪率对其进行排序,然后找出每个特定用户正在查看该页面的哪一行。

如果我是“排名”第 30 位的用户,它会回显“30”。我用来查找前 5 名的代码在这里,但我需要对其进行扩展:

<?php
$i = 0;
$FindCrimes = mysql_query("SELECT * FROM players WHERE status='Alive' AND robot = 0 ORDER BY `totalcrimes` DESC LIMIT 5");
while($Row = mysql_fetch_assoc($FindCrimes)){
    $Username = $Row['playername'];
    $TotalCrimes = number_format($Row['totalcrimes']);
    $i++;
        echo "
        <tr>
            <td bgcolor='#111111' width='5%'>$i</td>
            <td bgcolor='#111111' width='50%'><a href='viewplayer?playerid=$Username'>$Username</a></td>
            <td bgcolor='#333333' width='45%'>$TotalCrimes</a></td></td>
        </tr>
        ";
    } 
?>

最佳答案

我假设您已经设置了一个变量来保存当前用户 ID 号和总犯罪次数,因此在本例中我将使用 $user 作为我的变量。

更改您的以适应。

现在,我看到两个实例,您的意思可能是因为您的帖子不是很具体,所以我将解决这两个问题。

要在页面顶部显示数字,您可以使用类似的内容;

<?php
$sql   = "SELECT * FROM `players` WHERE `totalcrimes` > '{$user['totalcrimes']}'";
$run   = mysql_query($sql);
$rank  = mysql_num_rows($run) + 1;
echo 'Your rank: ' . $rank;

除此之外,我发现它可能被用来突出显示您的行,所以这样的东西就足够了;

<?php
$i = 0;
$FindCrimes = mysql_query("SELECT * FROM players WHERE status='Alive' AND robot = 0 ORDER BY `totalcrimes` DESC LIMIT 5");
while($Row  = mysql_fetch_assoc($FindCrimes)) 
{
    $Username    = $Row['playername'];
    $TotalCrimes = number_format($Row['totalcrimes']);
    $i++;

    $primary   = '#111111';
    $secondary = '#333333';

    if ($Row['id'] == $user['id']) 
    {
        $primary   = '#222222';
        $secondary = '#444444';
    }

    echo "<tr>
        <td bgcolor='$primary' width='5%'>$i</td>
        <td bgcolor='$primary' width='50%'><a href='viewplayer?playerid=$Username'>$Username</a></td>
        <td bgcolor='$secondary' width='45%'>$TotalCrimes</a></td></td>
    </tr>";
} 

如果这些都没有满足您的要求,请发表评论,我将进行编辑以满足您的要求。

编辑:我在游戏领域工作了几年 - 愿意分享您的链接吗?

关于php - 如何查找所需行之前的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23331206/

相关文章:

php - 如何进行部分单词匹配的多列mysql全文搜索

php - 传递引用不适用于 array_walk_recursive 的附加参数,除非它是已弃用的调用时传递引用

php - Codeigniter:删除或更改表单按钮样式

php - 检索 exec() 输出时出错

php - 使用 jQuery getJSON 填充下拉列表不起作用

javascript - 使分页与其计数一起工作

sql - Oracle 错误 ORA-00971

php - 如何检查数据库中是否不存在一行

java - 如何根据在 mysql 中该行上使用 sum(1) 接收到的数据创建一个新列

sql - 批量SQL插入