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

最も効率的な方法でこれを行うための最良の方法は何ですか

乾杯!!

4

2 に答える 2

9

クエリとして:

SELECT user, COUNT(*) AS reviews
FROM <table name>
GROUP BY user
ORDER BY reviews DESC;
于 2009-05-11T20:43:29.807 に答える
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に配列をトラバースさせ、必要なコンテンツを抽出します
  5. 目的の出力を印刷します。
于 2009-05-11T20:54:07.307 に答える