2011-11-11 10 views
8

私はwhileループを通じてクエリを実行していると私は教授の列の数で注文する場合は、この構造(http://cl.ly/3D1D3m1O0v3d0x2j0Z0EMySQL ORDER BY COUNT()?

と私のデータベース内のテーブルを設定しています。

これは私のクエリが現在のように表示されますが、エラーが発生しています。

$order_list = mysql_query(" 
    SELECT COUNT(prof), 
    FROM prof_rating 
    ORDER BY COUNT(prof) ASC"); 

これは私が得る警告です。

警告:mysql_fetch_assoc()がブール値が

答えて

12

ことによってあなたの順序であることを入れて、パラメータ1は資源であることを期待し、 select-listに集約関数を使用すると、結果セットには行が1つしかないことになります。結果セットを1行でソートするのはほとんど意味がありません。

あなたは教授の個別の値ごとに評価のカウントを取得することを意図している場合、あなたはこれを使用する必要がありますが:それぞれの行数と

$order_list = mysql_query(" 
    SELECT prof, COUNT(*) AS PROFCOUNT, 
    FROM prof_rating 
    GROUP BY prof 
    ORDER BY PROFCOUNT ASC'"); 

ます出力複数の行、profの値ごとに1行、与えられたProf値。

+0

提案していただきありがとうございます。コアで問題が何であるかを認識し、私のmysql_queryに余分なものがあり、警告メッセージが表示されていました。私はそれを最初に見落としたとは信じられません。 – Jako

6

エイリアス列名で指定し、それは価値がある何のため句:)

$order_list = mysql_query(" 
SELECT COUNT(prof) AS PROFCOUNT, 
FROM prof_rating 
ORDER BY PROFCOUNT ASC'"); 
関連する問題