2009-11-06 47 views
4

我有一个MySQL数据库,用户可以在其中列出他们已阅读的书籍,想要阅读的等等。我试图编写一个查询来查找用户列出的最常见的书籍。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”

任何人有任何想法,我哪里会出错?

回答

5

我想你错过了这一点:

$row = mysql_fetch_assoc($result) 

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

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

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,描述,解释等语句返回的结果集,请求mysql_query()成功返回的资源,或者在错误FALSE。

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

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

+1

语法有轻微错误..它应该是$ row ['title']在echo输出中。 – Paul 2012-11-25 13:47:28