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 回答