首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -如何从数据库中按从高到低的顺序获取前十条记录

PHP -如何从数据库中按从高到低的顺序获取前十条记录
EN

Stack Overflow用户
提问于 2016-04-08 11:27:50
回答 4查看 977关注 0票数 0

我到处搜索,包括Stackoverflow,都找不到我想要的确切信息。就像我在其他网站上尝试过的那样,在StackOverFlow上也有一些答案,但它不起作用。

问题是,我正在做一个项目,其中显示了前十名的最高声誉(也就是:“排行榜/图表”),但根据声誉保持低(首先),然后随机(例如:低,高,低,中)。奇怪的是,我没有SQLi命令的经验,所以叫我菜鸟吧(我接受)。

下面是我目前写的不起作用的代码:

代码语言:javascript
复制
<h1>Leaderboards</h1>
<?php
$query = "SELECT user_name, reputation FROM m_users ORDER BY reputation DESC LIMIT 10";
?>
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            top ten
                        </div>
                        <div class="panel-body">
                            <div class="table-responsive">
                                <table class="table">
                                    <thead>
                                        <tr>
                                            <th>User</th>
                                            <th>Reputation Points</th>
                                        </tr>
                                    </thead>
                                    <tbody>
<?php
foreach($mysqli->query($query) as $rep)
{
    echo '<tr>';
        echo '<td>';
            echo ''.$rep['user_name'].'';
        echo '</td>';
        echo '<td>';
            echo $rep['reputation'];
        echo '</td>';
    echo '</tr>';
}
?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>

出现的结果是:

代码语言:javascript
复制
jay 100
ray 1000
joy 250

我想要的是:“从最高到最低”(简单的图表/排行榜),例如:“在一些像”使命召唤“这样的多人在线游戏中,它通过scores...etc显示从最高到最低”。这只会产生最低、最高、最低的medium...etc。

我根本不能修复这个问题,谁能帮我检测一下这个bug?:(

EN

回答 4

Stack Overflow用户

发布于 2016-04-08 11:48:57

试试这样的东西

代码语言:javascript
复制
SELECT `user_name`, `reputation` FROM `m_users` ORDER BY convert(`reputation`, UNSIGNED INTEGER) DESC;
票数 1
EN

Stack Overflow用户

发布于 2016-04-08 11:48:25

我认为这是因为数据库中的reputation列不是int,而是varchar或text。

票数 0
EN

Stack Overflow用户

发布于 2016-04-08 11:51:52

如果您将varchar更改为int,那么您将获得所需的结果。

下面是一个例子:http://sqlfiddle.com/#!9/830896/1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36490997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档