2009-05-11 11 views
1

私はプログラミングは初めてではありませんが、私はMySQLとPHPが初めてです。私は以下を行う最も効率的な方法が何であるか疑問に思っています。私は実際のコードは必要ありませんが、ただのステップは必要ありません。すなわち、できるだけ効率的にデータを数え、ランク付けする方法

USER REVIEW 
Bob  nice 
John good 
Fred bad 
Bob  poor 
Bob  the best 
Fred medicre 
Bob  shiny 

が、私はほとんどのレビューをした査読のリストを作成することができるようにしたい

USER REVIEWS 
Bob 4 
Fred 2 
John 1 

私は、ユーザーレビューのリストを持っているが、単純に言うことができます最も効率的な方法で、これについての最善の方法は何ですか?

歓声!!クエリとして

答えて

9

SELECT user, COUNT(*) AS reviews 
FROM <table name> 
GROUP BY user 
ORDER BY reviews DESC; 
3

時にはそれは、プログラマがコードで自分自身を説明するのためだけに簡単です:

// Credit to Chad Birch for the query... 
$query = "SELECT user, COUNT(*) AS reviews 
      FROM <table name> 
      GROUP BY user 
      ORDER BY reviews DESC"; 

$res = mysql_query($query); 
if(mysql_num_rows($res) > 0) { 
    $res_array = mysql_fetch_assoc($res); 
    $list = "<h1>USER REVIEWS</h1>\n"; 
    foreach($res_array as $user) { 
     $list .= $user['user'].' '.$user['reviews']."<br />\n"; 
    } 
} 

echo $list; 

ので、基本的には、9/10倍、それはSQLをやらせるのが最善です並べ替えやものは、それがちょうどそのようなもので効率的だからです。

  1. ドゥSQLクエリと、それがどんな結果が返さがあるかどうかを確認するためにあなたの結果
  2. ましょうPHPのチェックをソートしてみましょう。
  3. レッツPHP配列/オブジェクト
  4. レッツPHP tranverse配列、エキス必要なコンテンツ
  5. に結果があなたの所望の出力を印刷し変換します。
関連する問題