【发布时间】:2016-04-08 17:15:35
【问题描述】:
我在包括 Stackoverflow 在内的所有地方都搜索过我的答案,但找不到我正在寻找的确切信息。就像我在其他网站上尝试过这些答案,在 StackOverFlow 上也有一些答案,但它没有用。
问题是我正在做一个项目,该项目在前十名中显示出最高的声誉(又名:“排行榜/图表”),但一直在下降(首先)然后是随机的(例如:低、高、低、中) 基于声誉。很奇怪,我对 SQLi 命令没有经验,所以叫我菜鸟(我会接受)。
这是我目前编写的不起作用的代码:
<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>
出现的结果是:
jay 100
ray 1000
joy 250
我想要的是:“从最高到最低”(简单图表/排行榜),例如:“在一些在线游戏多人游戏中,如使命召唤,它显示从最高到最低的分数......等等”。这只会导致最低,最高,最低,中等......等等。
我根本无法解决这个问题,谁能帮我检测一下这个错误? :(
【问题讨论】:
-
如果你执行你的 MySQL 查询,你的结果是什么??
-
它显示 = jay [100],ray = [1000] & joy = [250]。这不是按顺序排列的,它应该是从高到低,但奇怪的是从低到高显示:/ :(
-
嗨,我认为您必须将
reputation列作为 varchar 类型而不是 int。这就是您以“100”->“1000”->“250”的方式排序的原因。您应该将信誉列中的变量类型更改为整数。看看有没有帮助。