2017-02-19 7 views
0

私はこれを数ヶ月間設定するのに苦労しています! 私のデータベースにランクを設定する際に助けが必要です。ORDER BYを2回実行する必要があります。ランク付けの問題

これは私の現在のコードがどのように見えるかです:私がやりたいすべてにランクを追加することですhttp://filipvlaisavljevic.com/clash/ffa.php

$db->queryNoReturn("SET @a:=0"); 
return $db->query(" 
    SELECT * FROM 
     (SELECT 
       `FFA_Stats`.`id`, 
       `FFA_Stats`.`player_uuid`, 
       `FFA_Stats`.`points`, 
       `FFA_Stats`.`hits`, 
       `FFA_Stats`.`shots`, 
       `FFA_Stats`.`wins`, 
       `FFA_Stats`.`tkills`, 
       `FFA_Stats`.`tdeaths`, 
       (`FFA_Stats`.`tkills`/`FFA_Stats`.`tdeaths`) as `KDR`, 
       `player`.`name`, 
       `player`.`uuid`, 
       `player`.`online`, 
       (@a:[email protected]+1) AS rank 
      FROM `FFA_Stats` 
      INNER JOIN `player` ON `FFA_Stats`.`player_uuid`=`player`.`uuid` 
      ORDER BY `points` DESC 
     ) AS `sub` 
    "); 

基本的にそのポイントでそれをソートし、あなたはそれがここでどのように見えるか確認することができますソートされたテーブルは、最も多くのポイントを持つプレイヤーが#1などになります。

何をすればいいですか?

+0

これをランク付けするためにPHP出力で行うことができます。 –

+0

?コードや例を私に送ってもらえますか? –

+0

あなたのPHPコードはどのようなものですか? –

答えて

0

通常、ランク番号は、クエリ結果の行を反復処理して生成できる整数です。例えば。 echo $ count ++;

データベースのランクを計算したり、属性を付けた場合は、カンマで区切った「順序付け」ステートメントを追加できます。例えば。

FROM `FFA_Stats` 
    INNER JOIN `player` 
    ON `FFA_Stats`.`player_uuid`=`player`.`uuid` 
    ORDER BY `rank` DESC, `points` DESC) AS `sub` 
     "); 
+0

私の現在のコードに追加することで私を助けることができますか? –

+0

私は上記のコードにあると思います。 ORDER BY 'rank' DESC、' points' DESC)。 –

+0

問題は、テーブルをソートする前にランクを割り当てることです。ランク別にソートすると、正しい順序ではありません。 –

関連する問題