2009-11-06 49 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