2016-04-08 10 views
1

私はStackoverflowを含むどこでも検索しましたが、私の答えは正確な情報を見つけることができませんでした。私は他のサイトでそれらの答えを試したように、いくつかの答えはStackOverFlowでここにあり、うまくいきませんでした。PHP - データベースから上位10個のレコードを取得するにはどうすればいいですか

私はトップ10(別名:「リーダーボード/チャート」)で最高の評判を表示しているが、低い(最初)、次にランダムな(例えば:低い、高い、ミディアム)。私はSQLiコマンドで経験したことがないので、私はnoobと呼んでください(私は受け入れます)。ここで

は動作しません。私は現在書かれているコードです:

<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 

:(簡単な「最低から最高」例えば、Call of Dutyのようなオンラインゲームのマルチプレイヤーでは、スコアによって最高から最低までを表示します。これは、最低、最高、最低、中...などの結果になります。

私はこれをまったく修正できません。だれでもバグの検出に役立つことができますか? :(

+0

あなたのMySQLクエリを実行すると、あなたの結果は何ですか? –

+0

= jay [100]、ray = [1000]&joy = [250]を示します。/:( – ItzAyshaGurl

+2

こんにちは、私はあなたが 'varchar型でint型ではない'評判列を持たなければならないと思います。それであなたはそのようにソートしました、 "100"→ "1000"→ "250"のようになります。レピュテーション列の変数の型をintegerに変更すると助けになりますか? – CheeHow

答えて

0

私はint型されていないため、データベース内の評判列のことを考えるが、varchar型またはテキスト。

1

あなたはintにvarchar型を変更した場合、あなたが得るこの

SELECT `user_name`, `reputation` FROM `m_users` ORDER BY convert(`reputation`, UNSIGNED INTEGER) DESC; 
+0

こんにちはJorge、ありがとうございます。私のデータベース設定では、「Varchar」のように「Int」に変更して、うまくいきました。あなたと私の質問にリプレイする時間を与えてくれた皆さんのおかげで、すべてソートされました。答えは:データベース設定で "INT"にしてください。もう一度Jorjeに感謝します:)そして他の人にも<3 – ItzAyshaGurl

0

のようなものを試してみてください結果を希望ここ

は例です:。 あなたのタイプのためにCAST()関数を使用することができますhttp://sqlfiddle.com/#!9/830896/1

0

:BINARY、CHAR、DA TE、DATETIME、TIME、DECIMAL、SIGNED、UNSIGNED

SELECT user_name, reputation FROM m_users ORDER BY CAST(`reputation` AS UNSIGNED) DESC LIMIT 10 
関連する問題