MySQL计算最常见的值

时间:2009-11-06 21:12:32

标签: php mysql count

我有一个MySQL数据库,用户可以在其中列出他们已阅读的书籍,想要阅读等等。我正在尝试编写查询以查找用户列出的最常见的书籍。

我目前的查询是:

$result = mysql_query("SELECT title, COUNT(title) AS counttitle FROM books GROUP BY title ORDER BY counttitle DESC LIMIT 1"); 
            echo "<p>The most popular book listed by members is $result</p>";

看起来(对我来说)是合乎逻辑的做法,我看不出语法有什么问题,但我得到的结果是“成员列出的最受欢迎的书是资源ID# 32"

任何人都知道我哪里出错了?

3 个答案:

答案 0 :(得分:5)

我想你错过了这个:

 $row = mysql_fetch_assoc($result)

$result实际上不是答案,它是包含具有答案的行的结果资源。

答案 1 :(得分:4)

您的查询没问题,您需要阅读PHP。

 result = mysql_query("SELECT title, COUNT(title) AS counttitle FROM books GROUP BY title ORDER BY counttitle DESC LIMIT 1");
 $row = mysql_fetch_assoc($result);
 echo "<p>The most popular book listed by members is " . row['title'] . "</p>";

文档:http://us3.php.net/mysql_query

  

返回值

     

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,或者在出错时返回FALSE。

     

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。

     

返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。

答案 2 :(得分:1)

这个例子应该有所帮助
mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {

printf("ID: %s Name: %s", $row[0], $row[1]);

}
从这里http://us2.php.net/mysql_fetch_array